講義の概要:多数の粒子の相互作用を扱う物理学の方法論である統計力学を使って、多数の計算要素の相互作用によって超並列計算が行われる脳の計算モデルとそれを具体的に応用する方法を学ぶ。脳の並列計算の原理を統計物理学的に分析しながら,脳の情報処理の仕組み,並列計算を解析・設計するための統計物理学的方法,確率的計算の原理を学ぶ。講義のねらい:統計物理学的手法によって超並列計算を分析、設計できるようにし、実際にプログラムを作って応用する。
.脳の超並列計算のモデルとその動作を理解できるようにする。その理解の基盤となる統計物理学を習得する。確率的に動作する大規模並列システムのプログラミング技法を知る。プログラミングを通じて理論的に学んだ内容の正しさを確認する。
脳、神経回路モデル、並列計算、統計物理、最適化問題、学習
✔ 専門力 | 教養力 | コミュニケーション力 | ✔ 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
講義と講義の内容を体験するプログラミング演習を行い、講義で学習したことをプログラミング実験で確認して実践できるようにする。
授業計画 | 課題 | |
---|---|---|
第1回 | 生物の神経回路網について | 生物の神経回路の仕組みを学ぶ |
第2回 | ニューロンの工学的モデル、決定的、確率的、二値、連続値モデル | 生物の神経回路をヒントにした工学的モデルについて学ぶ。 |
第3回 | ニューラルネットワークの工学的モデル、リカンレント型とフィードフォワード型 | 代表的な二つのニューラルネットワークのモデル:リカレント型とフィードフォワード型を学ぶ。 |
第4回 | 統計学と統計物理学の基礎、スピングラスモデル | リカレント型モデルを理解するための理論的基盤として統計物理学を学ぶ。 |
第5回 | 脳の超並列計算をスピングラスとのアナロジーで理解する。 | 脳の超並列計算をスピングラスとのアナロジーで理解する。それにより物理学のエネルギーの概念を脳の並列計算モデルに導入する。 |
第6回 | 決定的リカンレント型ニューラルネットによるエネルギー最小化 | 決定的リカンレント型ニューラルネットによるエネルギー最小化の仕組みを理解する。 |
第7回 | ボルツマンの理論に基づく確率的リカンレント型ニューラルネットの計算能力の解析 | 脳の並列計算モデルとして確率的リカレント型ニューラルネットの計算能力を統計物理学の手法を使って解析する。 |
第8回 | 決定的及び確率的なリカレント型ニューラルネットワークのシミュレーション | 計算機シミュレーションによって決定的及び確率的なリカレント型ニューラルネットワークの計算能力を確認する。 |
第9回 | リカレント型ニューラルネットによる連立方程式と最適化問題の計算 | リカレント型ニューラルネットを使って、連立方程式と最適化問題を解く方法を学ぶ。 |
第10回 | 計算効率化の工夫:エルゴード性と結線重みの自動計算 | エルゴード性を使って確率的リカレント型ニューラルネットの計算を効率良く行う方法と目的の問題を解くためにニューラルネットの結線の重みと閾値を決める方法を学ぶ。 |
第11回 | リカレント型ニューラルネットのプログラミングと応用1:8クィーン問題 | プログラミング実習で良く使われている「8クィーン」という問題に対して、リカレント型ニューラルネットを応用するための定式化とプログラミング方法を学ぶ。 |
第12回 | リカレント型ニューラルネットのプログラミングと応用2:巡回セールスマン問題 | 組み合わせ最適化問題の中でも難問として知られる巡回セールスマン問題に対して、リカレント型ニューラルネットを応用するための定式化とプログラミング方法を学ぶ。 |
第13回 | リカレント型ニューラルネットの学習1: 数学的基礎 | リカレント型ニューラルネットワークの学習法を理解するために必要な数学的手法を学ぶ。 |
第14回 | リカレント型ニューラルネットの学習2: ボルツマンマシンの学習 | リカレント型ニューラルネットワークの一つであるボルツマンマシンについて学習法を学ぶ。 |
第15回 | リカレント型ニューラルネットの学習の計算機シミュレーション | リカレント型ニューラルネットの学習法のプログラミングと計算機シミュレーションを行いその能力を確認する。 |
学習とニューラルネットワーク 熊澤逸夫 森北出版
Introduction to the Theory of Neural Computation, written by J. Hertz, A. Krogh and R.G. Palmer and published by Westview Press.
講義で学んだことをプログラミングによって実装して有効性を確認した結果をレポートとして提出する。レポートに含まれているプログラム、結果、考察を評価して成績をつける。
何らかの計算機言語で数値処理のプログラムを書けること。C言語やJava等どんな計算機言語でもよく、計算機言語でなくとも一定の手順で数式処理のできるMatlabやMathematica等のアプリケーションでも良い。
kumazawa.i.aa[at]m.titech.ac.jp
平日10時から19時の間