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

¥850¥0

◎本書の目的
ニューラルネットワークの高い学習能力や自動化の容易な柔軟性を、多変量解析やクラスター分析などに適用するためにの手法を解説し、そのためのツールをコンピュータ・プログラムとしてJava言語で実装し、読者に提供することが本書の目的です。
多変量データを分析するために本書では自己組織化マップ(SOM:Self Organised Map) を使います。SOMはコホネン教授(Teuvo Kalevi Kohonen, Dr. Eng)によって提案されたニューラルネットワークのモデルです。
データ分析の分野では、実験や試験結果の解析や物価や株価の動向まで世の中の様々なデータを解析するために、主成分分析や重回帰など多くの分析手法が考案されています。しかし、柔軟で誰もが使えるような汎用的な分析手法の実現に十分に答えられているとは言えないでしょう。分析対象の多次元データに潜む特徴や傾向を顕在化し把握することは、予想以上に複雑で困難なものであり、多くの労力と時間が費やされています。
ニューラルネットワークは現在その応用分野として、将棋やチェスなどのゲームをはじめ、気象予報などのトレンドの分析や予測、そして車両の自動運転や防犯システムなどでは画像の分析や認識技術などに使われ、成果を上げています。特に、対象データに潜在的に含まれている特徴を抽出し、より深いレベルでの解析を可能にする深層学習による手法が注目を集めています。

深層学習に用いられるニューラルネットワークの学習は、正解データ(教師データ)を必要とするバックプロパゲーションという学習方法が用いられます。この学習方法ではニューラルネットワークの出力と正解データとの誤差が減少するように、ニューロンのパラメータを調整します。従って、あらかじめ正解データを用意できることが必須の前提条件になります。
一方、本書で解説する自己組織化マップSOMは教師データを必要としない学習方法です。教師データ無しで学習するというと、疑問に思われるかもしれませんが、データを解析して何か有用な情報を引き出せるということは、そもそも元のデータが抽出できる情報を持っているということです。欲しい情報はデータの中に埋もれており、この情報を洗い出し顕在化することがSOMの働きです。
正解データを付与することは分析に予断を与える可能性があります。人間の誤った見方や偏った解釈により、本来データが持っている情報が見過ごされていまったり、正当に評価されない恐れがあります。対してSOMでは人間が予想もしていなかった事実が導きだされる可能性があります。大量で多次元なデータを人間の頭の中で処理するのは多くの場合非常に困難です。ニューラルネットワークの働きにより、埋もれている情報を隅々まで網羅的に、かつ機械的に処理できるのであれば、とても望ましい分析手段になります。
本書で目指す最終的な形体は、多変量解析やクラスター分析を行うために、SOMやニューラルネットワークの仕組みと機能を理解し、読者が想定する学習分析を実現するSOMをJava言語を用いてプログラムとして実装することです。本書は学習分析の仕組みと例題を分かり易くかつ簡潔に解説し、Java言語による具体的な実装例を掲載していますので、本書をジャンプ台として、読者自らが自身の課題に挑戦していただけることを願っています。

◎本書の構成

本書は全9章で構成されており、各章では取り組む課題や実装するSOM注)プログラムなどについて順を追って解説しています。

・第1章
キーワード:分類(クラスタリング)、教師無し学習、因子、Uマップ

学習分析への導入から始まり、動物や植物の分類を例にSOMとは何か、SOMでどのようなことができるかについて解説します。SOMの大きな長所の一つとして挙げられることは、SOMが教師無しで学習するニューラルネットワークであるという点です。SOMが教師(正解データ)無しで学習することの利点や、多変量データの分析における強力なクラスタリング能力について説明します。

・第2章
キーワード:入力データ、競合処理、協調処理、最近似ユニットBMU、学習率

SOMの仕組みと働きについて説明します。深層学習で使われるニューラルネットが多くの階層からなる複雑な構造を持っているのに対して、SOMは一層構造の極めてシンプルなニューラルネットです。単純な入力データを用いてSOMがその能力を発揮するための基本的な仕組みを模式的に解説します。

・第3章
キーワード:SOMプログラムの構成、因子ベクタ、参照ベクタ、ビューワ

Java言語によるSOMの実装について説明します。SOMは本書に付属する「Java深層学習構築環境DaiJa Ver.4」で実行されます。
読者には本書に付属のSOMプログラムを実際に走らせながら本書を通読することをお薦めします。本章ではDaiJaの構成や操作方法の概要について説明します。
あわせて、入力データの読込やSOMの実行状況や学習結果を観察するためのビューワについても説明します。

・第4章
キーワード:逐次学習、一括学習、最近似ユニットBMU、近傍関数

本章ではSOMによる学習機能の詳細を、フローチャートやソースコード、説明図を用いて解説します。SOMの学習機能の多くの重要な処理は本章に記述されています。

・第5章
キーワード:動物の分類、Uマップ、因子マップ、プロパティ・ビューワ

多くのSOMの解説書で紹介されている「動物の分類」を例題として、SOMの実行方法を具体的に説明します。また、Uマップや因子マップの作成や、それらを使用した学習結果の見方について説明します。

・第6章
キーワード:植物の分類、初期化ファイル、境界マップ、ラベルマップ

分類問題で例題として紹介される「植物の分類」を例題として、SOMの実行方法を具体的に説明します。さらに、Uマップの情報をより簡潔に見やすくする境界マップや、マップに因子名を表示するラベルマップについて説明します。

・第7章
キーワード:手書き数字の判別、評価マップ、学習結果の保存と再現

イメージの分類として手書き数字の判別を行います。深層学習の応用分野である画像認識をSOMでも扱います。SOMの学習結果の評価を分かり易くする評価マップの生成方法とその実装について説明します。さらに、SOMの学習結果をファイルに保存する方法と、保存したファイルを読み込んで学習結果を再現するSOMプレーヤーSomPlayerクラスの利用方法を説明します。

・第8章
キーワード:音声の識別、音声データ、FFT

スマートフォンで収録した音声をアプリでFFT(高速フーリエ変換)で周波数域のデータに変換し、SOMへ入力します。本書に掲載の例では、「あいうえお」の各音を学習し、SOMのニューラルネットの学習には使用しなかった試行用のデータを用いて、学習結果の検討を行っています。

・第9章
キーワード:巡回セールスマン問題、1次元へのマッピング、総移動距離

8章までの例題では、学習結果は2次元の平面にマッピングされていますが、9章では巡回セールスマン問題を扱うため、結果である巡回経路は1次元にマッピングされます。県庁所在地やキャンパスの位置を緯度と経度を用いて簡易的に表し、できるだけ移動距離の短い経路をSOMで探索します。

・付録

本書の付録では、Javaの実行環境やSOM用のJava深層学習構築環境DaiJa Ver.4の導入について説明します。本書で説明した主なクラスのソース・コードは巻末に掲載されています。

①付録Aでは、DaiJaの使い方として
Javaの実行環境の設定やDaiJaプロジェクト・フォルダのダウンロードについて説明します。さらに各章で説明したニューラルネットワークの実行方法やGUIの操作について説明します。

②付録Bでは、Eclipse、NetBeansなどの
IDE(統合開発環境)を使用して各章で説明したニューラルネットワークの構造を調べたり、読者独自の機能を追加したり、新たなニューラルネットワークを作成するために、IDEの導入方法とDaiJaの構成と実行の流れについて説明します。

③付録Cでは、DaiJaプロジェクトDaiJa Ver.4の
主要なソースコードを掲載します。すべてのコードを掲載することは実際的ではないので、掲載されていないソースコードについては、付録Aを参照して「DaiJaプロジェクト・フォルダ」をダウンロードしてください。

シリーズ一覧

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

 

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

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

Kindle Unlimited 無料体験に登録する