【18)Deep Learning3 ~フレームワーク編~ INDEX】
メインメニューへ戻る
【メインメニュー】
メインメニューへ戻る
サイトメニュー
18)フレームワーク編
00. ゼロから作るDeep Learning3 フレームワーク編
00.00 まえがき
Stage01: 微分を求める
Stage01.Step01: 変数
01.01 変数
01.02 Variableクラスの実装
01.03 Numpy多次元配列
Stage01.Step02: 関数
02.01 関数
02.02 Functionクラスの実装
02.03 Functionクラスを使う
Stage01.Step03: 関数の連結
03.01 exp関数の実装
Stage01.Step04: 数値微分
04.01 数値微分
04.02 数値微分の実装
04.03 合成関数の微分
04.04 数値微分の問題点
Stage01.Step05: バックプロパゲーション
05.01 チェインルール
05.02 バックプロパゲーションの導入
05.03 計算グラフで表す
05.04 計算グラフの復習
Stage01.Step06: 手作業のバックプロパゲーション
06.01 Variableクラス追加
06.02 Functionクラス追加
06.03 Square・Expクラス追加
06.04 バックプロパゲーションクラス追加
06.05 処理時間比較
Stage01.Step07: バックプロパゲーションの自動化
07.01 逆伝播自動化準備
07.02 逆伝播
07.03 backwardメソッド追加
Stage01.Step08: 再帰からループ
08.01 Variableクラス分析
08.02 ループ仕様変更
08.03 動作確認
Stage01.Step09: 改善
09.01 関数改善
09.02 backward簡略化
09.03 ndarrayを使う
Stage01.Step10: テスト
10.01 pythonユニットテスト
10.02 squareの逆伝播テスト
10.03 勾配確認
Stage02: コード表現
Stage02.Step11: 可変長引数(順伝播)
11.01 Functionクラス修正
11.02 Addクラス実装
Stage02.Step12: 可変長引数(順伝播改善)
12.01 関数改善part1
12.02 関数改善part2
12.03 addの実装
Stage02.Step13: 可変長引数(逆伝播改善)
13.01 可変長Addクラス逆伝播
13.02 Variableクラスの改修
13.03 Squareクラスの実装
Stage02.Step14: 不具合
14.01 原因
14.02 対策
14.03 微分のリセット
Stage02.Step15: 複雑な計算グラフ~トポロジー~
15.01 逆伝播の順序
15.02 現状分析
15.03 優先度
Stage02.Step16: 複雑な計算グラフ~トポロジー実装~
16.01 世代
16.02 世代の伝播
16.03 backwardの実装
16.04 動作確認
Stage02.Step17: メモリ管理と循環参照
17.01 メモリ管理
17.02 参照カウント方式のメモリ管理
17.03 循環参照
17.04 weakrefモジュール
17.05 動作確認memory profiler
Stage02.Step18: メモリ使用量減らす
18.01 不要な微分
18.02 Functionクラスの復習
18.03 Configクラス切り替え
18.04 モード切り替え
18.05 withで切り替え
Stage02.Step19: 使いやすい変数
19.01 変数に名前を付ける
19.02 ndarrayのインスタンス変数
19.03 len/print
Stage02.Step20: 演算子のオーバーロード(1)
20.01 Mulの実装
20.02 演算子のオーバーライド
Stage02.Step21: 演算子のオーバーロード(2)
21.01 ndarrayを一緒に使う
21.02 数値と一緒に使う
21.03 __rmul__
21.04 左項がndarrayインスタンスの場合
Stage02.Step22: 演算子のオーバーロード(3)
22.01 負数
22.02 引き算
22.03 割り算
22.04 累乗
Stage02.Step23: パッケージ化
23.01 ファイル構成
23.02 コアクラスの移し替え
23.03 演算子のオーバーロード
23.04 __init__.py
23.05 dezeroのインポート
Stage02.Step24: 複雑な関数微分
24.01 Sphere関数
24.02 matyas関数
24.03 Goldstein-Price関数
24.04 Define-and-Run/Define-by-Run
24.05 まとめと問題点
Stage03: 高階微分
Stage03.Step25: 計算グラフの可視化(1)
25.01 Graphvizのインストール
25.02 DOT言語でグラフ化
25.03 ノード属性指定
25.04 ノードを結ぶ
Stage03.Step26: 計算グラフの可視化(2)
26.01 可視化コード使用
26.02 計算グラフ→DOT言語変換
26.03 画像化を含めた変換
26.04 動作確認
Stage03.Step27: テイラー展開の微分
27.00 爺になってからのテイラー展開
27.01 sin関数の実装
27.02 テイラー展開理論
27.03 テイラー展開実装
27.04 計算グラフの可視化
27.05 処理時間比較
Stage03.Step28: 関数の最適化
28.00 最適化復習
28.01 ローゼンブロック関数
28.02 微分
28.03 勾配降下法の実装
Stage03.Step29: ニュートン法による最適化
29.00 SGDの問題点
29.01 ニュートン法による最適化理論
29.02 ニュートン法による最適化実装
Stage03.Step30: 高階微分(準備)
30.01 【確認①】Variableクラスのインスタンス変数
30.02 【確認②】Functionクラス
30.03 【確認③】Variableクラスの逆伝播
Stage03.Step31: 高階微分(理論)
31.01 逆伝播の計算
31.02 逆伝播で計算グラフを作る方法
Stage03.Step32: 高階微分(実装)
32.01 実践
32.02 関数クラスの逆伝播
32.03 実践編
Stage03.Step33: ニュートン法を用いた最適化
33.01 2階微分を求める
33.02 ニュートン法による最適化
33.03 面白い問題
Stage03.Step34: sin関数の高階微分
34.00 実装前試験
34.01 sin関数の実装
34.02 cos関数の実装
34.03 sin関数の高階微分
Stage03.Step35: 高階微分の計算グラフ
35.01 tanh関数の微分
35.02 tanhの実装
35.03 高階微分の計算グラフで可視化
Stage03.Step36: 高階微分以外の用途
36.01 double backpropの用途
36.02 WGAN-GPの例
Stage04: ニューラルネットワーク
Stage04.Step37: テンソル
37.00 前ステップ復習と捕捉
37.01 要素ごとの計算
37.02 テンソルを使用した時のバックプロパゲーション/span>
37.03 【補足】テンソルを使用した時のバックプロパゲーション
Stage04.Step38: 形状を変える関数
38.01 reshapeの実装
38.02 Variableからreshape
38.03 行列の転置
38.04 【補足】transpose
Stage04.Step39: 和を求める関数
39.01 sum関数の逆伝播
39.02 sum関数の実装
39.03 axisとkeepdims
Stage04.Step40: ブロードキャスト
40.01 broadcast_toとsum_to関数
40.02 broadcast_toとsum_to関数実装
40.03 ブロードキャスト対応
Stage04.Step41: 行列の積
41.01 ベクトルの内積と行列の積
41.02 行列の形状チック
41.03 行列の積の逆伝播
Stage04.Step42: 線形回帰
42.01 トイ・データセット
42.02 線形回帰の理論
42.03 線形回帰の実装
42.04 【補足】mean_squared_error関数
Stage04.Step43: ニューラルネットワーク
43.01 pnear関数
43.02 非線形データセット
43.03 活性化関数とニューラルネットワーク
43.04 ニューラルネットワークの実装
Stage04.Step44: パラメータレイヤ
44.01 Parameterクラスの実装
44.02 Layerクラスの実装
44.03 pnearクラスの実装
44.04 Layerを使用したニューラルネットワークの実装
44.05 実装の問題点と対策
Stage04.Step45: レイヤを纏めるレイヤ
45.01 Layerクラスの拡張
45.02 Modelクラス
45.03 Modelクラスを使う
45.04 MLPクラス
Stage04.Step46: Optimizerによるパラメータ更新
46.01 Optimizerクラス
46.02 SGDクラスの実装
46.03 SGDクラスを使う
46.04 その他Optimizer
Stage04.Step47: ソフトマックス関数と交差エントロピー誤差
47.01 スライス操作
47.02 ソフトマックス関数
47.03 交差エントロピー誤差
Stage04.Step48: 多項分類
48.01 スパイラル・データセット
48.02 学習用コード
Stage04.Step49: Datasetクラスと前処理
49.01 Datasetクラスの実装
49.02 大きなデータセット
49.03 データ連結
49.04 学習用コード
49.05 前処理
Stage04.Step50: DataLoader
50.01 イテレータ
50.02 DataLoader
50.03 accuacy関数の実装
50.04 学習の実装
Stage04.Step50: MNIST
50.01 MNISTデータセット
50.02 MNIST学習
50.03 モデルの改良
Stage05: DeZeroで挑む
Stage05.Step52: GPU対応
52.00 GPU事前知識
52.01 CuPyのインストールと使用方法
52.02 cudaモジュール
52.03 各クラスの実装
52.04 関数の追加実装
52.05 GPUでMNIST学習
Stage05.Step53: モデルの保存と読み込み
53.01 Numpyのsave関数とload関数
53.02 Layerクラスのパラメータをフラットに
53.03 Layerクラスのsave関数とload関数
Stage05.Step54: Dropoutとテストモード
54.01 Dropout
54.02 Inverted Dropout
54.03 テストモード
54.04 Dropoutの実装
Stage05.Step55: CNN
55.01 CNNネットワーク構造
55.02 畳み込み演算
55.03 パディング
55.04 ストライド
55.05 出力サイズ
Stage05.Step56: CNN(2)
56.01 3階テンソル
56.02 ブロック図
56.03 ミニバッチ処理
56.04 プーリング層
Stage05.Step57: conv2d/poopng関数
57.01 im2col関数
57.02 conv2d関数
57.03 Conv2dレイヤの実装
57.04 poopng関数の実装
57.05 con2dの可視化
Stage05.Step58: VGG16
58.01 VGG16実装
58.02 学習済重みデータ
58.03 学習済みのVGG16
Stage05.Step59: RNN 時系列データ処理
59.01 RNNレイヤ実装
59.02 RNNモデル実装
59.03 「つながり」を切るメソッド
59.04 サイン波の予測
Stage05.Step60: LSTMとデータローダ
60.01 時系列データローダ
60.02 LSTM実装