ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

2016年5月20日金曜日

C言語で学ぶ機械学習:『機械学習と深層学習』の要点(サンプルDL/電子版案内)

C言語だけで写経できる入門/処理手続きの理解に向く。深層の網羅性は限定的なので“実装で掴む”用途に最適

機械学習と深層学習 ―C言語によるシミュレーション


  • Q. サンプルコードはどこ?
    A. **オーム社公式の「ダウンロード」**にzip(約24KB)。本書購入者向け、著作権等の注意書きあり。 ohmsha.co.jp

  • Q. 正誤表はある?
    A. 公式記載「正誤表はございません」ohmsha.co.jp

  • Q. 電子版は?
    A. Amazon Kindle/達人出版会/BookWalkerなどで入手可(試し読みありのサイトも)。 Amazon Japan達人出版会電子書籍ストア | BOOK☆WALKER


  •  

     

    ・ソースコードはこちら



    2016年5月18日水曜日

    『強くなるロボティック・ゲームプレイヤーの作り方』復刊|C++で学ぶ実践的強化学習[プレミアムブックス版]サンプルDL案内つき

    2008年刊の名著『強くなるロボティック・ゲームプレイヤーの作り方』がプレミアムブックス版として2016年に復刊。C++でロボット/ゲームAIに強化学習を実装する実践書です。著者は八谷大岳・杉山将。紙版・電子版あり、サンプルコードはマイナビのサポート/商品ページから入手できます(発売日:2016/06/08、ISBN:978-4-8399-5673-8)。

    強くなるロボティック・ゲームプレイヤーの作り方 プレミアムブックス版 ~実践で学ぶ強化学習~ 


    • C++によるロボット強化学習
    • サンプルソースのダウンロードはこちら

    追記:よくある質問(FAQ)

    Q. 復刊で内容は変わりましたか?
    A. 基本内容は2008年版と同一で、プレミアムブックスとして再刊されています。
    Q. 使用言語は? Pythonでも学べますか?
    A. 本書の実装はC++中心です。概念は他言語にも応用できますが、サンプルはC++です。
    Q. サンプルコードはどこで入手できますか?
    A. 出版社の商品/サポートページからダウンロードできます(販売サイトの案内を参照)。
    Q. 電子版(eBook)はありますか?
    A. あります。販売状況は各ストア(出版社サイト、Amazon等)でご確認ください。
    Q. どんな人に向いていますか?
    A. C++で強化学習を実装してみたい初中級者〜実務者、ロボット制御やゲームAIに関心のある方。
    Q. 具体的に何が学べますか?
    A. 強化学習の基礎からアルゴリズム、ロボット/ゲームエージェントへの実装手順までを通しで学べます。
    Q. 事前に必要な知識・環境は?
    A. C++の基礎、確率・線形代数・微積の初歩。標準的なC++コンパイラ/IDE(GCC/Clang/Visual Studio等)。
    Q. 価格や在庫は?
    A. 変動するため、最新情報は出版社ページや通販サイトでご確認ください。

    主要トピック(各1行)

    • MDP:状態・行動・遷移・報酬で問題を定式化する土台。

    • 動的計画法:モデル既知前提で価値・方策を反復更新して最適化。

    • モンテカルロ:エピソード平均で価値推定。モデル不要・高分散。

    • TD学習:1歩先の推定でブートストラップ更新。オンラインに向く。

    • SARSA:実行中の方策で更新するオンポリシー。安全寄り。

    • TD(λ):エリジビリティ痕跡で多段のTD誤差を混合。

    • Q学習:max行動で更新するオフポリシー。理論収束性が強い。

    • 近似(線形/カーネル):特徴表現で連続空間の価値関数を近似。

    • 政策勾配:方策を確率分布として直接最適化(REINFORCE等)。

    代表課題

    • 三目並べ:離散・完全情報で基礎検証に最適。

    • Mountain Car:連続状態で谷脱出。探索設計がカギ。

    • Acrobot:二重振子のスイングアップ。制御系の定番難題。

    2016年4月29日金曜日

    カーネルの本質を知り演習形式でLinuxの勘所を捉える

    実習Linuxカーネル―理論と実習 カーネルを効率的に理解するための実習書


    この書籍は概要編と実習編からなる



    概要
    •  カーネルの本質はリソースの抽象化にある
    •  カーネルが提供する抽象化されたリソースに対しては、ある統一した手続きにで、デバイス(装置)にアプローチできる
    •  本質的に、プログラムは計算機械(マシン)を操作する手段といえるが、マシンの細かい仕様(個々の装置に対してどのような信号を送れば動作するのか)を知らなくても、カーネルを通じて命令を送ることができる
    •  あるいは、仮想的な機械を想定して、コンピューター上に同じ手続きで装置を作ることもできる。メッセージやセマフォといった仕組みや、いわゆるデータ型オブジェクトといった概念も、このリソースの抽象化が実現させている
    •  プロセスとはリソースの中でも、プログラムを実行するCPU操作の抽象化である
    •  Linuxにおいてはリソースの操作はプロセスによって行われることが大前提である
    •  OSは「プロセスとリソースを管理」し、それらリソースの「メモリを管理」し、外部接続されていたり仮想的だったりする「デバイスを管理」し、それらデバイスへの媒体となる「ファイルを管理」する


    実習
    1. とりあえずカーネル変数を/porcを使って読み込んでいく
    2. 並列処理を考慮に入れたLinux上のプログラミングを体験する
    3. ソーネルのソースを読んでみる
    4. カーネルの一部となる、スーパーバイザーモードで動くプログラムを作る
    5. システムコールの追加
    6. 共有メモリ機能の変更
    7. 仮想メモリ機構の理解とチューンナップ
    8. プロセス間の同期メカニズムである「イベント」について学ぶ
    9. スケジューラの変更
    10. プロセス間で利用するパイプをデバイスドライバとして実装
    11. ディスクドライバの変更
    12. ファイルシステムの作成

    • 1973年 ニューヨークで開かれたSOSPのワークショップにおいてデニスリッチーケントンプソンによって”The UNIX Time-Sharing System (Abstract).”が報告される
    •  1969年からから開発が始められたUNIXの設計思想が知られ始めたのは1973年のSOSP報告書による
    •  UNIXの設計思想には二つの新たな方向性があった、一つはOSの小規模化と機能の軽量化であった
    •  1973年時点で、OSと呼ばれるソフトウェアは大規模、多機能なソフトウェアという考え方が多い中、UNIXの設計思想は革新的だった
    •  大学を中心にUNIXは普及し始め、1990年代にはメジャーなものになっていったが、同時に肥大化、巨大化していった 
    •  1991年に開発が始められたLinuxは初期の設計思想に基づいた小規模化、軽量化が推し進められている





    クイズ形式でScalaの陥りやすい間違いをお勉強

    2016年4月25日月曜日

    Frothあれこれ