著者:佐々木 能成
ページ数:839

¥1,250¥0

・第3版:高速実装版(DaiJa Ver.4)について

第3版では本書で解説したプログラムを実装した「Javaデジタル学習構築環境DaiJa Ver.4」の改良されたソース・コードの内容に合わせてほぼ全面的に加筆・修正されました。章の構成や取り扱う例題とロジックにおおきな変更はありませんが、改良された実装プログラミングに即した説明になっています。

DaiJaのVer.2以降ではDaiJaプロジェクトの実装が改良され、ニューラルネットワークの学習に要する時間が大幅短縮されました。学習負荷の大きい分類問題や画像認識では短縮率が約60%に達し、従来の4割に短縮されました。

注)Javaデジタル学習構築環境DaiJa:Digital-learning Aide Instrument by JAva

・本書の目的
現在、深層学習(ディープ・ラーニング)が多方面で実用化され、これほどまでに注目されているのはさまざまな理由によるものですが、その素晴らしさの中でもっとも特徴的で重要な点は「学び方を教わらずに学ぶ」ことです。換言すればニューラルネットワークはさまざまな学習対象を、予備知識なしでただ一つの深層学習というアルゴリズムのみを使って学習できる汎用性の高さであるといえます。

自然界の全ての知的生命体は学び方を教わらずに知識を獲得します。ニューラルネットワークは脳神経を模擬した単純な疑似ニューロンを組み合わせて構築されます。この単純かつ機械的に組み合わされたニューラルネットワークが世の中の多種多様な事象を学習する能力を発揮します。本書と本書が提供するJavaで実装されたJava学習構築環境DaiJaにより、汎用的に作られたニューラルネットワークが学習するその振る舞いの一部始終を、読者は実際に自身の目の前でプログラムを実行して体験することができます。ニューラルネットワークの挙動をつぶさに観察し把握することで隅々まで納得することにより、深層学習の仕組みが解き明かされ、そのすべての知見を読者のものとすることができるでしょう。

さらに、Java言語という非常に強力で広範な応用力を備えたプログラミング環境により誰もがニューラルネットワークを実装し、自身の目的に応じて使えるものにすることが本書の目的です。

・DaiJaプロジェクトには以下のニューラルネットワークが実装されています。

(1)単層ニューラルネットワーク:AndLogicクラス
   AND論理(論理積)を単層(疑似ニューロン1個)で学習
(2)多層ニューラルネットワーク:ExorLogicクラス
   単層では学習できないEXOR論理(排他的論理和)を学習
(3)回帰ニューラルネットワーク:CurveFitクラス
   曲線の推定(近似)
(4)分類ニューラルネットワーク:Classifierクラス
   アイリスの品種を分類
(5)画像認識ニューラルネットワーク:ImageRecognizerクラス
   手書き数字の判別
(6)畳込ニューラルネットワーク:ConvNetクラス
   フィルタを用いた畳込みとプーリングによる学習

・本書の構成

深層学習はさまざまな分野に応用され、AIなどのベース技術としても広く実用化されています。深層学習技術の利用目的が異なれば使われる手法も学習結果の表現形態も多種多様になります。そのため、ニューラルネットワークを用いた深層学習では、

(1)回帰問題と分類問題に大別されるターゲット分野への適用方法、
(2)バックプロパゲーションによるパラメータの最適化、
(3)過学習を回避するための手法や勾配喪失への対策、
(4)コンボリューショナル・ニューラルネットワークにおけるフィルタリングやプーリング処理、

などのいくつかの基本技術の組み合わせで構成されています。本書では取り組む課題の難易度や作成するプログラムの規模や複雑さに準じて、各章で順を追って取り組む中に適宜これらの課題を織り交ぜて解説しています。

本書は全7章で構成されており、第1章のただ一つの疑似ニューロンからなる最も単純な単層ニューラルネットワークから始まり、徐々に複雑なニューラルネットワークへと進み、各章での深層学習の課題としてしばしば取り上げられる回帰問題や分類問題などのニューラルネットワークを紹介し、最終的に第6章ではコンボリューショナル・ニューラルネットワークへと進みます。第7章では第2版:高速実装版(DaiJa Ver.2) 以降で改良、追加された内容について補足します。

更に付録では、Javaデジタル学習構築環境DaiJaのダウンロードやJavaの実行環境の導入と、Javaの統合開発環境であるEclipseやNetBeansへの設定について説明します。

・Javaで学ぶ深層学習:目次

序章
1 前書き
2 本書の構成
第1章 単層ニューラルネットワーク
 1.1 ニューロンのモデル化
 1.2 疑似ニューロンの実装
 1.3 学習処理の流れ
 1.4 疑似ニューロンの実行
 1.5 論理演算の学習結果
  コラム1.1 層(layer)構造
  コラム1.2 内積
  コラム1.3 微分、偏微分、勾配
  コラム1.4 勾配降下法
  コラム1.5 論理演算
  コラム1.6 実行速度の調整
第2章 多層ニューラルネットワーク
 2.1 多層ニューラルネットワークの実装
 2.2 学習処理の流れ
 2.3 学習の実行
 2.4 ExOR論理の学習結果
  コラム2.1 活性化関数
  コラム2.2 ExOR論理(排他的論理和)
  コラム2.3 初期化ファイル
第3章 回帰問題
 3.1 曲線の推定
 3.2 回帰ニューラルネットワークの実装
 3.3 学習処理の流れ
 3.4 学習の実行
 3.5 曲線の推定の学習結果
  コラム3.1 活性化関数の宣言と呼出
  コラム3.2 勾配降下法の宣言と呼出
第4章 分類問題
 4.1 品種の分類
 4.2 分類ニューラルネットワークの実装
 4.3 学習の流れ
 4.4 学習の実行
 4.5 品種の分類の学習結果
  コラム4.1 過学習対策
  コラム4.2 交差エントロピー誤差
第5章 画像認識
 5.1 手書き数字の判別
 5.2 画像判別ニューラルネットワークの実装
 5.3 学習の流れ
 5.4 学習の実行
 5.5 手書き数字の学習結果
第6章 畳込みニューラル・ネットワーク
 6.1 畳込みニューラルネットワークによる学習
 6.2 タスクの実装
 6.3 学習の流れ
 6.4 学習の実行
 6.5 畳込みニューラルネットワークによる学習結果
第7章 高速実装版 (DaiJa Ver.4)
 7.1 層クラスの独立
 7.2 勾配降下法のクラス化
 7.3 活性化関数のクラス化
 7.4 テンソル・クラスの廃止

・付録 Javaデジタル学習構築環境(DaiJa)

付録A DaiJaの使い方
 A.1 Java実行環境
 A.2 DaiJaプロジェクトのダウンロード
 A.3 ニューラルネットワークの起動方法
 A.4 GUIの機能と操作
 コラムA3.1 環境変数の設定
付録B DaiJaの構造
 B.1 プログラム開発環境
  (1)Eclipseのインストール
  (2)NetBeansのインストール
 B.2 DaiJaプロジェクトを開く
 B.3 DaiJaプロジェクト・フォルダの構成
 B.4 ニューラルネットワークの実行
 B.5 ビューワの起動
付録C DaiJaのソース・コード

シリーズ一覧

  • 同シリーズの電子書籍はありませんでした。

 

  Kindle Unlimitedは、現在30日間無料体験キャンペーンを行っています!

この期間中は料金が980円→0円となるため、この記事で紹介している電子書籍は、すべてこのKindle Unlimited無料体験で読むことが可能です。

Kindle Unlimited 無料体験に登録する