Successfully reported this slideshow.
Your SlideShare is downloading. ×

ディープラーニングのすごさを共有したい.pdf

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 26 Ad

ディープラーニングのすごさを共有したい.pdf

Download to read offline

活性化関数ReLUのすごさを伝えたいと思い作成した資料です。
なるべくディープラーニングを知らない人にも伝えたいと思って作りました。

〈参考資料〉
- 『本質をとらえたデータ分析のための分析モデル入門』
https://www.socym.co.jp/book/1377
- ニューラルネットワークの数学(順伝播)
https://free.kikagaku.ai/tutorial/basic_of_deep_learning/learn/neural_network_basic_forward
-ニューラルネットワークの数学(逆伝播)
https://free.kikagaku.ai/tutorial/basic_of_deep_learning/learn/neural_network_basic_backward
- 勾配消失問題とは?
http://marupeke296.com/IKDADV_DL_No6_vanishing_grad_prob.html
- 畳み込みニューラルネットワークの最新研究動向 (〜2017)
https://qiita.com/yu4u/items/7e93c454c9410c4b5427
- シグモイド関数の意味と簡単な性質
https://manabitimes.jp/math/790
- tanhの意味、グラフ、微分、積分
https://mathwords.net/haipaborictan
- ディープラーニング(Deep Learning)の歴史を振り返る
https://tjo.hatenablog.com/entry/2020/08/16/153129#fn-901c5fa1
- GeoGebra
https://www.geogebra.org/graphing?lang=ja

- MIdjourney
https://www.midjourney.com/home/
- Stable Diffusion
https://github.com/CompVis/stable-diffusion
- DALL·E 2
https://openai.com/dall-e-2/
- Text-to-Audio
https://felixkreuk.github.io/text2audio_arxiv_samples/
- Text-to-Video
https://makeavideo.studio/
- Text-to-3D
https://dreamfusionpaper.github.io/
- 日刊 画像生成AI
https://note.com/yamkaz/all
- NovelAI
https://novelai.net/

活性化関数ReLUのすごさを伝えたいと思い作成した資料です。
なるべくディープラーニングを知らない人にも伝えたいと思って作りました。

〈参考資料〉
- 『本質をとらえたデータ分析のための分析モデル入門』
https://www.socym.co.jp/book/1377
- ニューラルネットワークの数学(順伝播)
https://free.kikagaku.ai/tutorial/basic_of_deep_learning/learn/neural_network_basic_forward
-ニューラルネットワークの数学(逆伝播)
https://free.kikagaku.ai/tutorial/basic_of_deep_learning/learn/neural_network_basic_backward
- 勾配消失問題とは?
http://marupeke296.com/IKDADV_DL_No6_vanishing_grad_prob.html
- 畳み込みニューラルネットワークの最新研究動向 (〜2017)
https://qiita.com/yu4u/items/7e93c454c9410c4b5427
- シグモイド関数の意味と簡単な性質
https://manabitimes.jp/math/790
- tanhの意味、グラフ、微分、積分
https://mathwords.net/haipaborictan
- ディープラーニング(Deep Learning)の歴史を振り返る
https://tjo.hatenablog.com/entry/2020/08/16/153129#fn-901c5fa1
- GeoGebra
https://www.geogebra.org/graphing?lang=ja

- MIdjourney
https://www.midjourney.com/home/
- Stable Diffusion
https://github.com/CompVis/stable-diffusion
- DALL·E 2
https://openai.com/dall-e-2/
- Text-to-Audio
https://felixkreuk.github.io/text2audio_arxiv_samples/
- Text-to-Video
https://makeavideo.studio/
- Text-to-3D
https://dreamfusionpaper.github.io/
- 日刊 画像生成AI
https://note.com/yamkaz/all
- NovelAI
https://novelai.net/

Advertisement
Advertisement

More Related Content

Recently uploaded (20)

Advertisement

ディープラーニングのすごさを共有したい.pdf

  1. 1. ディープラーニングのすごさを共有したい ~活性化関数ReLUについて~ by @tree__and__tree
  2. 2. ディープラーニングとは 学習の仕方 勾配消失問題 勾配消失問題の解決(ゴール!) おしながき by @tree__and__tree 2
  3. 3. ディープラーニングとは ディープラーニングとは 学習の仕方 勾配消失問題 勾配消失問題の解決(ゴール!) by @tree__and__tree 3
  4. 4. コンピュータが人間みたいなことをできるようになる学習方法 コンピュータ:知識0常識0だが、めちゃポテンシャル高い 上手に学習させた結果:多様な AI(人工知能) を実現 画像認識、機械翻訳、検索、要約、レコメンド、自動運転、物体検知、画像 生成、音声認識、AlphaGo、、 余談:画像生成界隈、ガチで22年が転換点ぽい 22年8月:ヤバめのText-to-Imageが複数出現 Midjourney, Stable Diffusion, DALL·E 2 22年9月:Text-to-Video、Text-to-3D、Text-to-Audioが出現 22年10月:Text-to-Image、爆速で発展 NovelAIの登場、Stable Diffusionは各地でカスタマイズ化 ディープラーニングとは by @tree__and__tree 4
  5. 5. 猫です AI 以下の二つともやっていることは一緒 入力したものを2倍にして返す 画像分類の例(右図) 入力した画像を何らかのカテゴリーに分け る AI:数学的にはただの関数 何かを入力→内部で変換→何かを出力 f(x) = 2x by @tree__and__tree 5
  6. 6. 学習:良い関数を見つけること i. 「良さ」を決める その関数がどれくらい良い関数なのかを評価できるようにする →評価関数、目的関数 ii. 使う関数を決める 無数にある関数の中から、ある程度大枠を決めておく ex) 2次関数にしよう→ iii. 良い関数を探す:後で詳しく ex)良さが最大になるように二次関数のa,b,cを決める 推論:見つけた関数を使うこと 学習と推論 f(x) = ax + 2 bx + c by @tree__and__tree 6
  7. 7. f1(x)=x2+2 f2(x)=2x2-3x ... f10(x)=-4x2-x+1 猫です ※イメージ 10層で学習 ex)2次関数を2個つなげると4次関数に と をつなげる →10個つなげたら 次関数に 深層の真相 複雑な関数を、単純な関数の積み重ねで表現する f ​ (x) = 1 x + 2 2 f ​ (x) = 2 2x − 2 3x f ​ (f ​ (x)) = 2 1 2(x + 2 2) − 2 3(x + 2 2) 2 = 10 1024 by @tree__and__tree 7
  8. 8. 学習の仕方 ディープラーニングとは 学習の仕方 勾配消失問題 勾配消失問題の解決(ゴール!) by @tree__and__tree 8
  9. 9. モデル(関数の集まり)︓f ⼊⼒︓x 出⼒︓y データ︓x, t 正解︓t ⽬的関数 パラメータ更新 1. パラメータの初期値をランダムに決定 2. そのパラメータで計算して予測値 を出す 3. 予測値 を正解 と比べて評価する 目的関数に を入れ、良さor悪さを出す 4. 目的関数の値をより大きくor小さくするために パラメータの値を更新する ←ここをさらに詳しく 5. 2-4を繰り返し、パラメータの値を最適化する パラメータの最適化=目的関数が一番大きいor 小さい 学習の流れ y y t y, t by @tree__and__tree 9
  10. 10. Φ(y) y こんな例で考えてみる 目的関数: 誤差が小さいほど予測値と正解が近い(良いモデル) → を小さくするようにパラメータを更新 具体的に... のとき: を小さくする のとき: を大きくする → のようにすれば良い ( は学習率、勾配をどれくらい反映させるかを決め る) 誤差を、勾配(微分)を使って小さく(降下)させている! パラメータを更新:勾配降下法 Φ(y) = (y − t)2 Φ(y) y > t y y < t y y ​ = new y − α ∗ ϕ (y) ′ α by @tree__and__tree 10
  11. 11. ⼊⼒︓x x 1 =ax+5 y=bx 1 +3 出⼒︓y ⽬的関数︓Φ(y)=(y-t) 2 正解︓t パラメータを更新 誤差逆伝播法 モデルのパラメータを出力に近い層 から更新していく こんな例で考えてみる 2層でできたモデル 更新するパラメータ: モデルのパラメータを更新 a, b by @tree__and__tree 11
  12. 12. ⼊⼒︓2 x 1 =2*2+5 =9 y=1*9+3 =12 出⼒︓12 ⽬的関数︓Φ(y)=(12-10) 2 =4 正解︓10 パラメータを更新 こんな例で考えてみる 入力 正解 パラメータの初期値 を更新して、 を に近づけたい! モデルのパラメータを更新 x = 2 t = 10 a = 2 b = 1 a, b y t by @tree__and__tree 12
  13. 13. 予測値の更新: →パラメータ を更新すれば、予測値 も更新される パラメータの更新:それぞれの勾配を使う →全部 ?? 偏微分:その関数を、色々な変数で微分する を で微分: 、 を で微分: モデルのパラメータを更新 y ​ = new y − α ∗ ϕ (y)(yの勾配) ′ y = bx ​ + 1 3 = b(ax + 5) + 3 a, b y b ​ = new b − α ​ ∗ b ϕ (y)(bの勾配) ′ a ​ = new a − α ​ ∗ a ϕ (y)(aの勾配) ′ ϕ (y) ′ y a ​ ∂a ∂y y b ​ ∂b ∂y by @tree__and__tree 13
  14. 14. ⼊⼒︓x x 1 =ax+5 y=bx 1 +3 b new =b-[bの勾配] 出⼒︓y ⽬的関数︓Φ(y)=(y-t) 2 正解︓t bを更新 bの勾配を計算 の更新 代入すると、、、 モデルのパラメータを更新 b b ​ = new b − α ​ ∗ b ​ ∂b ∂ϕ = b − α ​ ∗ b ​ ∗ ∂y ∂ϕ ​ ∂b ∂y = b − α ​ ∗ b 2(y − 10) ∗ x ​ 1 b ​ = new 1 − α ​ ∗ b 2(12 − 10) ∗ 9 = 1 − α ​ ∗ b 36 by @tree__and__tree 14
  15. 15. ⼊⼒︓x x 1 =ax+5 a new =a-[aの勾配] 出⼒︓y ⽬的関数︓Φ(y)=(y-t) 2 正解︓t aを更新 aの勾配を計算 y=bx 1 +3 の更新 ←微分の数増えた! 代入すると、、、 モデルのパラメータを更新 a a ​ = new a − α ​ ∗ a ​ ∂a ∂ϕ = a − α ​ ∗ a ​ ∗ ∂y ∂ϕ ​ ∗ ∂x ​ 1 ∂y ​ ∂a ∂x ​ 1 = a − α ​ ∗ a 2(y − 10) ∗ b ∗ x a ​ = new 2 − α ​ ∗ a 2(12 − 10) ∗ 1 ∗ 2 = 1 − α ​ ∗ a 8 by @tree__and__tree 15
  16. 16. ⼊⼒︓x x 1 =ax+5 y=bx 1 +3 出⼒︓y ⽬的関数︓Φ(y)=(y-t) 2 正解︓t パラメータを更新 ポイント 勾配(微分)を使って、目的関数の値を良くするよう に更新している 出力に近い層のパラメータから順番に更新される 層をたくさん重ねると、、、 入力に近い層は微分をたくさんしないと更新できな い! モデルのパラメータを更新 by @tree__and__tree 16
  17. 17. 勾配消失問題 ディープラーニングとは 学習の仕方 勾配消失問題 勾配消失問題の解決(ゴール!) by @tree__and__tree 17
  18. 18. x mid =f linear (x in ) X in X out x out =f nonlinear (x mid ) 線形変換:1次関数 非線形変換:それ以外の関数(2次関数 も非線形) 活性化関数と呼ばれている 各層の中で線形変換→非線形変換を行っている ことが多い 線形変換と非線形変換 by @tree__and__tree 18
  19. 19. f1=A1◦Linear1 f2=A2◦Linear2 ... fn=An◦Linearn ⼊⼒︓x 出⼒︓y ⽬的関数︓Φ(y)=(y-t)2 正解︓t たくさん微分が連なる 第1層のパラメータ更新のイメージ →活性化関数( )の微分が大量に並ぶ が全部1未満だと、、、 掛け算するほど は小さくなってしま う →更新するとほぼ0になり、上手く学習で きない 勾配消失問題 a ​ = 1new −α ​ ∗ 1 ​ ∗ ∂y ∂ϕ w ​ ∗ 2 ...w ​ ∗ n A ​ ∗ 2 ′ A ​ ∗ 3 ′ ... ∗ A ​ n ′ A A a ​ 1new by @tree__and__tree 19
  20. 20. y=1 y=-1 元の関数 微分 y=1 y=0 従来の活性化関数 ※2010年代前半くらいまでの主流 シグモイド関数 tanh関数 どちらも微分値が1以下しか取らない →層をたくさん重ねると、勾配消失 問題が発生して上手く学習できない 勾配消失問題 by @tree__and__tree 20
  21. 21. 勾配消失問題の解決(ゴール!) ディープラーニングとは 学習の仕方 勾配消失問題 勾配消失問題の解決(ゴール!) by @tree__and__tree 21
  22. 22. ReLU:Rectified Linear Units 入力がプラスならそのまま出力 入力がマイナスなら0で出力 めっちゃシンプル! 勾配消失問題を解決する関数 y = ​ { x (x > 0のとき) 0 (x ≤ 0のとき) by @tree__and__tree 22
  23. 23. f1=A1◦Linear1 f2=A2◦Linear2 ... fn=An◦Linearn ⼊⼒︓x 出⼒︓y ⽬的関数︓Φ(y)=(y-t)2 正解︓t たくさん微分が連なる 第1層のパラメータ更新のイメージ(再び) 活性化関数にReLUを使うと、 の部分が 全部1になる →層を深くしても、上手く学習できる!! 勾配消失問題を解決する関数 a ​ = 1new −α ​ ∗ 1 ​ ∗ ∂y ∂ϕ w ​ ∗ 2 ...w ​ ∗ n A ​ ∗ 2 ′ A ​ ∗ 3 ′ ... ∗ A ​ n ′ A by @tree__and__tree 23
  24. 24. AlexNet(2012):画像処理のコンペにて、既存手法に対して圧倒的な精度差で勝利 したモデル 全8層からなる この頃からとてつもない技術発展がはじまっていく— VGGNet(2014):全19層。様々なモデルに応用されるベース的な立ち位置に GoogLeNet(2015):全22層。情報を圧縮し効率化に成功 ResNet(2015):全152層。今までと段違いの深さになった Transformer(2017):自然言語処理分野でのブレイクスルー。話題の画像生成分野 でも使われている BERT(2018):Transformerを活用したモデル。少しのデータで良いモデルが作れる ディープラーニングの夜明け by @tree__and__tree 24
  25. 25. 『本質をとらえたデータ分析のための分析モデル入門』 ニューラルネットワークの数学(順伝播) ニューラルネットワークの数学(逆伝播) 勾配消失問題とは? 畳み込みニューラルネットワークの最新研究動向 (〜2017) シグモイド関数の意味と簡単な性質 tanhの意味、グラフ、微分、積分 ディープラーニング(Deep Learning)の歴史を振り返る GeoGebra:関数描画に使用 参考 by @tree__and__tree 25
  26. 26. MIdjourney Stable Diffusion DALL·E 2 Text-to-Audio Text-to-Video Text-to-3D 日刊 画像生成AI NovelAI 参考(画像生成系) by @tree__and__tree 26

×