Submit Search
Upload
ラビットチャレンジレポート 深層学習 Day1
•
Download as PPTX, PDF
•
0 likes
•
89 views
S
ssuserf4860b
Follow
ラビットチャレンジレポート 深層学習 Day1
Read less
Read more
Science
Report
Share
Report
Share
1 of 25
Download now
Recommended
機械学習の勉強会で使用したもの。 『深層学習』(岡谷貴之)の勉強用にChapter4.2の計算を解説した。
誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)
t dev
Enshu5
Enshu5
sudahiroshi
http://www.slideshare.net/shuyo/i-svm-icml11 に補足を行った「ちょびっと改良版」です。
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
Shuyo Nakatani
深層学習 Day1レポート
深層学習 Day1レポート
深層学習 Day1レポート
taishimotoda
Maximaの最初の導入
Maxima操作
Maxima操作
So Katagiri
Javaの浮動小数点誤差の課題についてまとめた資料です。
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Tetsuya Yoshida
M
RUPC2017:M問題
RUPC2017:M問題
Takumi Yamashita
ニューラルネットワーク #w8prml
W8PRML5.1-5.3
W8PRML5.1-5.3
Masahito Ohue
Recommended
機械学習の勉強会で使用したもの。 『深層学習』(岡谷貴之)の勉強用にChapter4.2の計算を解説した。
誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)
t dev
Enshu5
Enshu5
sudahiroshi
http://www.slideshare.net/shuyo/i-svm-icml11 に補足を行った「ちょびっと改良版」です。
Infinite SVM [改] - ICML 2011 読み会
Infinite SVM [改] - ICML 2011 読み会
Shuyo Nakatani
深層学習 Day1レポート
深層学習 Day1レポート
深層学習 Day1レポート
taishimotoda
Maximaの最初の導入
Maxima操作
Maxima操作
So Katagiri
Javaの浮動小数点誤差の課題についてまとめた資料です。
Java数値(浮動小数点)課題勉強会
Java数値(浮動小数点)課題勉強会
Tetsuya Yoshida
M
RUPC2017:M問題
RUPC2017:M問題
Takumi Yamashita
ニューラルネットワーク #w8prml
W8PRML5.1-5.3
W8PRML5.1-5.3
Masahito Ohue
PRML(Pattern Recognition and Machine Learning) chapter5
PRML chapter5
PRML chapter5
Takahiro (Poly) Horikawa
PRML読書会発表資料。5.2章。
PRML Chapter5.2
PRML Chapter5.2
Takuya Minagawa
機械学習
機械学習
機械学習
ssusere8ae711
JOI夏季セミナー2015発表スライド
深層学習と活性化関数
深層学習と活性化関数
spade630
2.13 Cプログラムの包括的な例題解説 sortのアルゴリズムの解説とアセンブリコードへの変換
第12回計算機構成
第12回計算機構成
眞樹 冨澤
2000年の Lotus DevCon 2000 での講演資料が出てきましたので公開します。LotusScript の Technical Tips が載っています。
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Hiroaki Komine
2012年1月20日
2012年1月20日
nukaemon
ジャストシステム開発エンジニアインターンシップの1st STEPで出題された課題の回答と解説を掲載しています! 12/12,13に行われる本戦でTwitter上に公開される人工無脳のフォローはこちらから!⇒http://www.justsystems.com/jp/employ/int/
人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説
JustSystems Corporation
深層学習レポート Day1 のレポートです。
深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)
ssuser441cb9
ゼロから作るDeep Learningの勉強会で発表を担当した第4章後半部分です。
SGDによるDeepLearningの学習
SGDによるDeepLearningの学習
Masashi (Jangsa) Kawaguchi
研究室で過去に発表したもののだいぶ改訂版です.
A yet another brief introduction to neural networks
A yet another brief introduction to neural networks
Yuta Kikuchi
ニューラルネットワーク 単層ネットワーク-パーセプトロン(perceptron) パーセプトロンの学習則とその収束定理 パーセプトロンの記憶容量: Coverの数え上げ定理 パーセプトロンの限界:線形分離問題 ニューラルネットワーク 多層ネットワーク 関数近似としての教師あり学習 関数近似定理 応用例: NetTalk, Grove-TalkII, 自動運転 誤差逆伝播アルゴリズム 二乗誤差(回帰問題)とクロスエントロピー(分類問題) 確率勾配降下アルゴリズム 講師: 東京都市大学 田中宏和 講義ビデオ: https://www.youtube.com/playlist?list=PLXAfiwJfs0jGOvZnwUdAykZvSdRFd7K2p
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
hirokazutanaka
Ya-Liang Chang, Zhe Yu Liu, Kuan-Ying Lee, Winston Hsu, Learnable Gated Temporal Shift Module for Free-form Video Inpainting, BMVC2019 DOI: https://dx.doi.org/10.5244/C.33.71 https://bmvc2019.org/wp-content/papers/0355.html
文献紹介:Learnable Gated Temporal Shift Module for Free-form Video Inpainting
文献紹介:Learnable Gated Temporal Shift Module for Free-form Video Inpainting
Toru Tamaki
Ji Lin, Chuang Gan, Song Han; TSM: Temporal Shift Module for Efficient Video Understanding, Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2019, pp. 7083-7093 https://openaccess.thecvf.com/content_ICCV_2019/html/Lin_TSM_Temporal_Shift_Module_for_Efficient_Video_Understanding_ICCV_2019_paper.html
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
Toru Tamaki
パターン認識と機械学習5.1~5.4章の解説スライドです。
PRML5
PRML5
Hidekazu Oiwa
ラビットチャレンジレポート 深層学習Day4
ラビットチャレンジレポート 深層学習Day4
ラビットチャレンジレポート 深層学習Day4
ssuserf4860b
最新 → https://www.slideshare.net/ssuserf4860b/day-250965207 ラビットチャレンジレポート 深層学習 Day4
【最新ではありません。再度URL送付しています→https://www.slideshare.net/ssuserf4860b/day-250965207...
【最新ではありません。再度URL送付しています→https://www.slideshare.net/ssuserf4860b/day-250965207...
ssuserf4860b
ラビットチャレンジレポート 深層学習Day3
ラビットチャレンジレポート 深層学習Day3
ラビットチャレンジレポート 深層学習Day3
ssuserf4860b
ラビットチャレンジレポート 深層学習Day2
ラビットチャレンジレポート 深層学習Day2
ラビットチャレンジレポート 深層学習Day2
ssuserf4860b
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
ssuserf4860b
ラビットチャレンジレポート 応用数学
ラビットチャレンジレポート 応用数学
ラビットチャレンジレポート 応用数学
ssuserf4860b
More Related Content
What's hot
PRML(Pattern Recognition and Machine Learning) chapter5
PRML chapter5
PRML chapter5
Takahiro (Poly) Horikawa
PRML読書会発表資料。5.2章。
PRML Chapter5.2
PRML Chapter5.2
Takuya Minagawa
機械学習
機械学習
機械学習
ssusere8ae711
JOI夏季セミナー2015発表スライド
深層学習と活性化関数
深層学習と活性化関数
spade630
2.13 Cプログラムの包括的な例題解説 sortのアルゴリズムの解説とアセンブリコードへの変換
第12回計算機構成
第12回計算機構成
眞樹 冨澤
2000年の Lotus DevCon 2000 での講演資料が出てきましたので公開します。LotusScript の Technical Tips が載っています。
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Hiroaki Komine
2012年1月20日
2012年1月20日
nukaemon
ジャストシステム開発エンジニアインターンシップの1st STEPで出題された課題の回答と解説を掲載しています! 12/12,13に行われる本戦でTwitter上に公開される人工無脳のフォローはこちらから!⇒http://www.justsystems.com/jp/employ/int/
人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説
JustSystems Corporation
What's hot
(8)
PRML chapter5
PRML chapter5
PRML Chapter5.2
PRML Chapter5.2
機械学習
機械学習
深層学習と活性化関数
深層学習と活性化関数
第12回計算機構成
第12回計算機構成
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and Techniques
2012年1月20日
2012年1月20日
人工無脳バトル 1st STEP 回答と解説
人工無脳バトル 1st STEP 回答と解説
Similar to ラビットチャレンジレポート 深層学習 Day1
深層学習レポート Day1 のレポートです。
深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)
ssuser441cb9
ゼロから作るDeep Learningの勉強会で発表を担当した第4章後半部分です。
SGDによるDeepLearningの学習
SGDによるDeepLearningの学習
Masashi (Jangsa) Kawaguchi
研究室で過去に発表したもののだいぶ改訂版です.
A yet another brief introduction to neural networks
A yet another brief introduction to neural networks
Yuta Kikuchi
ニューラルネットワーク 単層ネットワーク-パーセプトロン(perceptron) パーセプトロンの学習則とその収束定理 パーセプトロンの記憶容量: Coverの数え上げ定理 パーセプトロンの限界:線形分離問題 ニューラルネットワーク 多層ネットワーク 関数近似としての教師あり学習 関数近似定理 応用例: NetTalk, Grove-TalkII, 自動運転 誤差逆伝播アルゴリズム 二乗誤差(回帰問題)とクロスエントロピー(分類問題) 確率勾配降下アルゴリズム 講師: 東京都市大学 田中宏和 講義ビデオ: https://www.youtube.com/playlist?list=PLXAfiwJfs0jGOvZnwUdAykZvSdRFd7K2p
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
hirokazutanaka
Ya-Liang Chang, Zhe Yu Liu, Kuan-Ying Lee, Winston Hsu, Learnable Gated Temporal Shift Module for Free-form Video Inpainting, BMVC2019 DOI: https://dx.doi.org/10.5244/C.33.71 https://bmvc2019.org/wp-content/papers/0355.html
文献紹介:Learnable Gated Temporal Shift Module for Free-form Video Inpainting
文献紹介:Learnable Gated Temporal Shift Module for Free-form Video Inpainting
Toru Tamaki
Ji Lin, Chuang Gan, Song Han; TSM: Temporal Shift Module for Efficient Video Understanding, Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV), 2019, pp. 7083-7093 https://openaccess.thecvf.com/content_ICCV_2019/html/Lin_TSM_Temporal_Shift_Module_for_Efficient_Video_Understanding_ICCV_2019_paper.html
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
Toru Tamaki
パターン認識と機械学習5.1~5.4章の解説スライドです。
PRML5
PRML5
Hidekazu Oiwa
Similar to ラビットチャレンジレポート 深層学習 Day1
(7)
深層学習レポート Day1 (小川成)
深層学習レポート Day1 (小川成)
SGDによるDeepLearningの学習
SGDによるDeepLearningの学習
A yet another brief introduction to neural networks
A yet another brief introduction to neural networks
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
東京都市大学 データ解析入門 10 ニューラルネットワークと深層学習 1
文献紹介:Learnable Gated Temporal Shift Module for Free-form Video Inpainting
文献紹介:Learnable Gated Temporal Shift Module for Free-form Video Inpainting
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
PRML5
PRML5
More from ssuserf4860b
ラビットチャレンジレポート 深層学習Day4
ラビットチャレンジレポート 深層学習Day4
ラビットチャレンジレポート 深層学習Day4
ssuserf4860b
最新 → https://www.slideshare.net/ssuserf4860b/day-250965207 ラビットチャレンジレポート 深層学習 Day4
【最新ではありません。再度URL送付しています→https://www.slideshare.net/ssuserf4860b/day-250965207...
【最新ではありません。再度URL送付しています→https://www.slideshare.net/ssuserf4860b/day-250965207...
ssuserf4860b
ラビットチャレンジレポート 深層学習Day3
ラビットチャレンジレポート 深層学習Day3
ラビットチャレンジレポート 深層学習Day3
ssuserf4860b
ラビットチャレンジレポート 深層学習Day2
ラビットチャレンジレポート 深層学習Day2
ラビットチャレンジレポート 深層学習Day2
ssuserf4860b
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
ssuserf4860b
ラビットチャレンジレポート 応用数学
ラビットチャレンジレポート 応用数学
ラビットチャレンジレポート 応用数学
ssuserf4860b
More from ssuserf4860b
(6)
ラビットチャレンジレポート 深層学習Day4
ラビットチャレンジレポート 深層学習Day4
【最新ではありません。再度URL送付しています→https://www.slideshare.net/ssuserf4860b/day-250965207...
【最新ではありません。再度URL送付しています→https://www.slideshare.net/ssuserf4860b/day-250965207...
ラビットチャレンジレポート 深層学習Day3
ラビットチャレンジレポート 深層学習Day3
ラビットチャレンジレポート 深層学習Day2
ラビットチャレンジレポート 深層学習Day2
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 機械学習
ラビットチャレンジレポート 応用数学
ラビットチャレンジレポート 応用数学
ラビットチャレンジレポート 深層学習 Day1
1.
深層学習 Day1
2.
Day1 01 NN(入力・中間・出力) 02 活性化関数 03
勾配降下法 04 誤差逆伝番法
3.
01 ニューラルネットワークNN(入力・中間・出力) 入力: 中間: 出力: ・・・ ・・・
・・・ 重みW1 重みW2 重みW3 バイアス b1 バイアス b2 バイアス b3
4.
01 NN(実装例) def init_network(): print("#####
ネットワークの初期化 #####") network = {} input_layer_size = 3 hidden_layer_size_1=10 hidden_layer_size_2=5 output_layer_size = 4 network['W1'] = np.random.rand(input_layer_size, hidden_layer_size_1) network['W2'] = np.random.rand(hidden_layer_size_1,hidden_layer_size_2) network['W3'] = np.random.rand(hidden_layer_size_2,output_layer_size) network['b1'] = np.random.rand(hidden_layer_size_1) network['b2'] = np.random.rand(hidden_layer_size_2) network['b3'] = np.random.rand(output_layer_size) print_vec("重み1", network['W1'] ) print_vec("重み2", network['W2'] ) print_vec("重み3", network['W3'] ) print_vec("バイアス1", network['b1'] ) print_vec("バイアス2", network['b2'] ) print_vec("バイアス3", network['b3’] ) return network 各層の行数×行数が重みの行数×列数となる 中間層は隠れ層とも呼ぶ 層の行数がそのままバイアスの行数となる ※後のページに実行結果を添付しており、 NN(入力~出力)と活性化関数の演習も含んでいる
5.
def forward(network, x): print("#####
順伝播開始 #####") W1, W2, W3 = network['W1'], network['W2'], network['W3'] b1, b2, b3 = network['b1'], network['b2'], network['b3'] # 1層の総入力 u1 = np.dot(x, W1) + b1 # 1層の総出力 z1 = functions.relu(u1) # 2層の総入力 u2 = np.dot(z1, W2) + b2 # 2層の総出力 z2 = functions.relu(u2) # 出力層の総入力 u3 = np.dot(z2, W3) + b3 # 出力層の総出力 y = u3 print_vec("総入力1", u1) print_vec("中間層出力1", z1) print_vec("中間層出力2", z2) print_vec("総入力2", u2) print_vec("出力", y) print("出力合計: " + str(np.sum(y))) return y, z1, z2 01 NN(実装例) 活性化関数にReLU関数を使用 (確認テストでも問われていた中間層の出力) 活性化関数にReLU関数を使用 (確認テストでも問われていた中間層の出力)
6.
# 入力値 x =
np.array([1., 2., 4.]) print_vec("入力", x) # ネットワークの初期化 network = init_network() y, z1, z2 = forward(network, x) 01 NN(実装例)
7.
01 NN(実行結果)
8.
01 NN(実行結果)
9.
02 活性化関数 中間層 ①ステップ関数 線形分離可能なもののみ ②シグモイド関数 勾配消失問題が発生の可能性 (1より小さいので連鎖率が繰り返されると 0に近づいてしまう) ③ReLU関数 入力値が0より大きな場合にはそのままの値 を返すので(1より大きいので)勾配消失問題 が起きにくい ① ② ③
10.
02 活性化関数 出力層 ①回帰:恒等写像 入力値をそのまま返す ※2乗することで負であることが なくなり、½倍することで、逆伝番時の微分で係数が 1になる(確認テストでも問われたところ) ②二値分類:シグモイド関数 ③多クラス分類:ソフトマックス関数 誤差関数
11.
03 勾配降下法 機械学習のレポートのロジスティック回帰でも出てきたが、NNのパラメータの更新にも勾配降 下法、確率的勾配降下法を用いる。 また、機械学習の際には言及がなかったが、ミニバッチ勾配降下法というものもある。 最適な勾配の決定の方法はDay2に記載する。 項番 勾配降下法
種別 式 備考 ① 勾配降下法 W = w - Π 𝜕E 𝜕𝑤 𝜕E 𝜕𝑤 は、すべての 𝜕E 𝜕𝑤 を対象とする ② 確率的勾配降下法 W = w - Π 𝜕E 𝜕𝑤 𝜕E 𝜕𝑤 は、ある1つだけを対象とする(ランダ ムに1つだけ計算するので計算量が少なく できる。学習データが入ってくるたびにその 都度、新たに入ってきたデータのみを使っ て学習を行うといったオンライン学習(確認 テストでも問われた)が可能) ③ ミニバッチ勾配降下法 W = w - Π 𝜕E 𝜕𝑤 𝜕E 𝜕𝑤 は、ランダムに分割したデータの集合 を対象とする(①と②のいいとこどり) i i t t
12.
04 誤差逆伝番法 def forward(network,
x): print("##### 順伝播開始 #####") W1, W2, W3 = network['W1'], network['W2'], network['W3'] b1, b2, b3 = network['b1'], network['b2'], network['b3'] # 1層の総入力 u1 = np.dot(x, W1) + b1 # 1層の総出力 z1 = functions.relu(u1) # 2層の総入力 u2 = np.dot(z1, W2) + b2 # 2層の総出力 z2 = functions.relu(u2) # 出力層の総入力 u3 = np.dot(z2, W3) + b3 # 出力層の総出力 y = u3 誤差逆伝番法 右の実装例で勾配降下法を利用するために 𝑊2の偏微分を求めるとき、連鎖率から以下のようになる。 𝜕E 𝜕𝑤2 = 𝜕E 𝜕𝑧2 𝜕𝑧2 𝜕𝑢2 𝜕𝑢2 𝜕𝑤2 NNの図で言うと、 右側の出力層から左側の入力層へ順伝番とは逆向きに 計算していくので逆伝番法と呼んでいる。
13.
04 誤差逆伝番法(実装例) def init_network(): print("#####
ネットワークの初期化 #####") network = {} network['W1'] = np.array([ [0.1, 0.3, 0.5], [0.2, 0.4, 0.6] ]) network['W2'] = np.array([ [0.1, 0.4], [0.2, 0.5], [0.3, 0.6] ]) network['b1'] = np.array([0.1, 0.2, 0.3]) network['b2'] = np.array([0.1, 0.2]) print_vec("重み1", network['W1']) print_vec("重み2", network['W2']) print_vec("バイアス1", network['b1']) print_vec("バイアス2", network['b2']) return network # 順伝播 def forward(network, x): print("##### 順伝播開始 #####") W1, W2 = network['W1'], network['W2'] b1, b2 = network['b1'], network['b2'] u1 = np.dot(x, W1) + b1 z1 = functions.relu(u1) u2 = np.dot(z1, W2) + b2 y = functions.softmax(u2) print_vec("総入力1 u1", u1) print_vec("中間層出力1 z1", z1) print_vec("総入力2 u2", u2) print_vec("出力1 y", y) print("出力合計: sum_y " + str(np.sum(y))) return y, z1 ※この実装例ではW1, W2を予め定義しているため、 各層の行数の変数による指定は無い (後のページに実行結果も載せており演習を含む)
14.
04 誤差逆伝番法(実装例) # 誤差逆伝播 def
backward(x, d, z1, y): print("¥n##### 誤差逆伝播開始 #####") grad = {} W1, W2 = network['W1'], network['W2'] b1, b2 = network['b1'], network['b2'] # 出力層でのデルタ delta2 = functions.d_sigmoid_with_loss(d, y) # b2の勾配 grad['b2'] = np.sum(delta2, axis=0) # W2の勾配 grad['W2'] = np.dot(z1.T, delta2) # 中間層でのデルタ delta1 = np.dot(delta2, W2.T) * functions.d_relu(z1) # b1の勾配 grad['b1'] = np.sum(delta1, axis=0) # W1の勾配 grad['W1'] = np.dot(x.T, delta1) print_vec("偏微分_dE/du2", delta2) print_vec("偏微分_dE/du1", delta1) print_vec("偏微分_重み1", grad["W1"]) print_vec("偏微分_重み2", grad["W2"]) print_vec("偏微分_バイアス1", grad["b1"]) print_vec("偏微分_バイアス2", grad["b2"]) ※左記が重みとバイアスの勾配を示す重要な箇所 (逆伝番をやっているところ)
15.
04 誤差逆伝番法(実装例) return grad #
訓練データ x = np.array([[1.0, 5.0]]) # 目標出力 d = np.array([[0, 1]]) # 学習率 learning_rate = 0.01 network = init_network() y, z1 = forward(network, x) # 誤差 loss = functions.cross_entropy_error(d, y) grad = backward(x, d, z1, y) for key in ('W1', 'W2', 'b1', 'b2'): network[key] -= learning_rate * grad[key] print("##### 結果表示 #####") print("##### 更新後パラメータ #####") print_vec("重み1", network['W1']) print_vec("重み2", network['W2']) print_vec("バイアス1", network['b1']) print_vec("バイアス2", network['b2']) ←ここまでbackward ←ここからメイン処理 ※左記が逆伝番と勾配降下法を行っている 重要な箇所
16.
04 誤差逆伝番法(実装例のイメージ図) 入力: 中間: 出力: 重みW1 重みW2 バイアス b1 バイアス b2 u1 u1 u1 z1 z1 z1 u2 u2 y y ReLU
softmax 教師d 0, 1 スライド14の赤字部分 教師dと出力yの誤差Eとすると、出力層(ソフトマックス)の偏微分は y – d、中間層(ReLU)の偏微分は1。 連鎖率からB2の偏微分はy – d × 𝜕𝑢2 𝜕𝑏2 で、u2 = Z1・W2 + b2のため 𝜕𝑢2 𝜕𝑏2 は1であり、y – dとなる。 W2での偏微分は、z1.T × (y – d) W1での偏微分は、x.T × ( y – d) × W2.T ×1
17.
04 誤差逆伝番法(出力結果)
18.
APPENDIX ステージテスト後の整理 理解不足があったため不足知識について整理する
19.
ステージテスト後の整理 最尤推定について、データ数が少ないと、たまたま正解となったのかもしれないので過学習の可能性がある。データが多いほうが良い。 サポートベクタマシンはy
x = wT Φ(x) + b = 0 の境界によってクラスを分離する。ラベルが-1, 1のときはsin(wT Φ(x) + b)によって分離する。 データとラベルの情報が与えられてその境界を考えるとき、実際にプロットをしてみて引いた線の値(xの値)を代入して求める。 ソフトマージンの式はC 𝑖=1 𝑛 𝜀𝑖 + 1 2 𝑤 2 εはデータ点𝒙𝒊がマージン内または誤分類されたときに正の値をとるスタック変数。 カーネルは特徴ベクトルの内積(特徴ベクトルの転置×特徴ベクトル) k-NNでは訓練ステップの時間はkに依存しない。高次元になると距離はほとんど同じになる(次元の呪い)ため機能しなくなる。 主成分分析による主成分への射影は、内積にて行う。
20.
ステージテスト後の整理 ソフトマージンの式はC 𝑖=1 𝑛 𝜀𝑖
+ 1 2 𝑤 2 について SVMはサポートベクトルのマージン最大化を取る境界線を見つけるものだった。 つまり、 1 𝑤 × 2の最大化。したがって、 𝑤 2 の最小化と言い換えられる。 これを計算の簡略化のため、 1 2 𝑤 2 としている。 C →∞がハードマージンのため、C 𝑖=1 𝑛 𝜀𝑖 + 1 2 𝑤 2 が最小となるパラメータを算出すればよい。 t(wT x + b) ≥ 1-ε、ε ≥ 0の制約条件から、最適解はラグランジュの未定乗数法から、 以下のL(α)が最大となるαを求めればよい L(α) = 𝑖=1 𝑛 α𝑖 - 1 2 𝑖=1 𝑛 i=j 𝑛 α𝑖α𝑗𝑡𝑖𝑡𝑗𝑥𝑖 𝑇 𝑥𝑗
21.
ステージテスト後の整理 カーネルは特徴ベクトルの内積(特徴ベクトルの転置×特徴ベクトル)について 非線形の境界線を引きたいけど引けない場合は、一度、高次元に置き換えることで引けるように なる。 x →
Φ(x) 特徴空間 (高次元化) このままでは 赤と青を分離する線は引けないが・・・ ただし、Φ(x)は高次元になればなるほど計算は大変。 𝐾 𝑥1, 𝑥2 = 𝛷𝑇 𝑥1 𝛷 𝑥2 としたときに元のベクトル計算で表現することができるものが存在する。 これ(K)をカーネルといい、有名なものに以下のものがある。(次のページ)
22.
ステージテスト後の整理 カーネルは特徴ベクトルの内積(特徴ベクトルの転置×特徴ベクトル)について カーネル法 式 線形カーネル
K(𝑥𝑖, 𝑥𝑗) = 𝑥𝑖・ 𝑥𝑗 シグモイドカーネル K(𝑥𝑖, 𝑥𝑗) = tanh( 𝑏𝑥𝑖 𝑇 𝑥𝑗 + c ) 多項カーネル K(𝑥𝑖, 𝑥𝑗) = ( 𝑥𝑖 𝑇 𝑥𝑗 + c )𝑑 ガウスカーネル K(𝑥𝑖, 𝑥𝑗) = ⅇ − | 𝑥𝑖 −𝑥𝑖 |2 2𝜎2 RBFカーネル K(𝑥𝑖, 𝑥𝑗) = ⅇ−𝛾 𝑥𝑖 −𝑥𝑖 2
23.
ステージテスト後の整理 カーネルは特徴ベクトルの内積(特徴ベクトルの転置×特徴ベクトル) L(α) =
𝑖=1 𝑛 α𝑖 - 1 2 𝑖=1 𝑛 i=j 𝑛 α𝑖α𝑗𝑡𝑖𝑡𝑗𝑥𝑖 𝑇 𝑥𝑗 L(α) = 𝑖=1 𝑛 α𝑖 - 1 2 𝑖=1 𝑛 i=j 𝑛 α𝑖α𝑗𝑡𝑖𝑡𝑗 𝛷𝑇 𝑥𝑖 𝛷 𝑥𝑗 まとめると、高次元化(x → Φ(x))をして、L(α)が最大となるパラメータを用いればよい。 そして 𝛷𝑇 𝑥𝑖 𝛷 𝑥𝑗 は元のベクトルで計算できるので計算も楽になる。 ※Φ(x)自体を計算する必要がない
24.
参考記事など オンライン学習とバッチ学習 https://dev.classmethod.jp/articles/online-batch-learning/ 誤差逆伝番法 https://www.anarchive-beta.com/entry/2020/08/03/180000 https://python.atelierkobato.com/backpropagation/ https://www.wantanblog.com/entry/2020/06/14/164809
カーネル法 https://nisshingeppo.com/ai/kernel-method/ https://kenyu-life.com/2019/04/22/svm_kernel/ https://kenyu-life.com/2019/04/01/svm_lagrange/ https://mi-chan-nel.com/kernel-method/
25.
Day2へ続く
Download now