neural network sample in C# for Microsoft de:code 2018 AI sessions
C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう
Microsoft de:code 2018 で提供されるサンプル コードです。 次のセッションで説明します。
- AI61 C# でニューラルネットワークをスクラッチで書いて機械学習の原理を理解しよう (2018/05/22 16:45 - 17:00)
C# で機械学習の原理であるニューラルネットワークをフルスクラッチで書いてみるサンプル コードと説明です。
ニューラルネットワークを実装してみることで、機械学習の基礎をきちんと理解できます。機械学習を基礎から理解することを目的としています。
機械学習 (Machine Learning) のコアとなる部分です。
C# で少数のニューロンからなる小規模なニューラル ネットワークを作成しています。 ニューロンからの出力には、シグモイド関数を使います。
| ソース コード | クラス | 説明 |
|---|---|---|
| NeuralNetwork.cs | EnumerableExtension | 汎用拡張メソッド |
| Math | 数学 | |
| Input | 入力 | |
| Neuron | ニューロン | |
| NeuralNetwork | ニューラル ネットワーク |
上記ニューラル ネットワークを使用したサンプルです。
福井県とその周辺の実際の座標を用いて上記ニューラル ネットワークを訓練します。
教師データは、"locations.csv" で、地名、緯度、経度、福井県内かどうか、からなる 1,088点の座標データです。
訓練後のニューラル ネットワークに、テスト用の座標データを入力し、福井県の中の座標かどうかを判定させています。
表示するものは以下のものです。
- シグモイド関数のグラフ
- 全座標データのプロット
- 訓練前のニューラル ネットワークによる判定結果
- 教師データ
- 教師データで訓練後のニューラル ネットワークによる判定結果
このプログラムは WPF で作られており、MVVM (Model-View-ViewModel) パターンで構成されています。
モデル
| ソース コード | クラス | 説明 |
|---|---|---|
| Model.cs | Coordinate | 地名、緯度、経度を含む座標 |
| MathModel | 数学モデル | |
| DataModelBase | データ モデルのベース クラス | |
| SampleDataModel | 座標データ モデル | |
| NeuralNetworkModel | 訓練前のデータ モデル | |
| TrainingDataModel | 教師データ モデル | |
| MachineLearningModel | 教師データで機械学習後のモデル |
ビューモデル
| ソース コード | クラス | 説明 |
|---|---|---|
| MainWindowViewModel.cs | LineSeriesViewModel | プロット用 |
| MathViewModel | シグモイド関数表示用 | |
| SampleDataViewModel | 座標データ表示用 | |
| NeuralNetworkViewModel | 訓練前のデータ表示用 | |
| TrainingDataViewModel | 教師データ表示用 | |
| MachineLearningViewModel | 教師データで機械学習後の表示用 | |
| MainWindowViewModel | メイン画面全体の ViewModel |
ビュー
| ソース コード | クラス | 説明 |
|---|---|---|
| MainWindow.xaml | MainWindow | メイン画面 |
| MainWindow.xaml.cs | MainWindow | メイン画面 |
| ソース コード | クラス | 説明 |
|---|---|---|
| App.xaml | App | アプリケーション |
| App.xaml.cs | App | アプリケーション |
| ファイル名 | 説明 |
|---|---|
| locations.csv | 座標データ ファイル (csv) |
| ClassDiagram.asta | クラス図 (Astah ファイル) |
| AI61.pdf | 説明資料 |
- PredictStockPrice-AI-decode: neural network sample in C# for Microsoft de:code 2018 AI sessions (Microsoft Azure Machine Learning Studio による株価予想プログラム)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)
.png)