「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfrastructure.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る(人工知能(AI)>人工知能(AI)]]
--[[機械学習(machine learning)]]
--深層学習(deep learning)
--[[強化学習(Reinforcement Learning)]]
--[[生成系AI(Generative AI)]]
*目次 [#h10158b8]
#contents
*概要 [#g7232031]
深層学習(deep learning)について纏める。
-[[第3次人工知能ブーム>人工知能(AI)#k888a1c6]]での人工知能
-[[教師あり学習>機械学習(machine learning)#y3a9ef2a]]を主体とする。
-人間の神経回路を真似した学習モデルを多層化した学習モデル。
--多層構造の[[ニューラルネットワーク]]を用いた[[機械学習>機械学習(machine learning)]]で、~
この多層化により、より複雑なルールやパターンを見つける事ができる。
--以下を基にしたアルゴリズムが実装されたもの。
---脳、特に視覚野の研究
---「[[たった一つの学習理論(One Learning Theory)>#x487f345]]」
---ブルーノ・オルスホーゼン教授~
による[[スパース・コーディング理論>#cc2f9749]]~
**特徴 [#j53be896]
-[[ニューラルネットワーク]]を多層(深層は3層以上)にして、 ~
[[誤差逆伝播法(バックプロパゲーション)>深層学習の誤差逆伝播法]]
と呼ばれる方法を用いて学習
-多層構造の[[ニューラルネットワーク]]に画像などのデータを入力すると、~
情報が第1層からより深くへ伝達されるうちに、各層で学習が繰り返される。
-[[機械学習>機械学習(machine learning)]]と同じ様な事が出来るが、分布を学習するのではなく超平面的なモノの近似を行う。
-観測データから本質的な情報を抽出した特徴、潜在表現、内部表現(低次元表現、特徴ベクトル表現)を学習する。
-以下の強みと弱みがある。
***強み [#zb288e04]
-[[特徴量>機械学習(machine learning)#t209d0ea]]の自動抽出とパラメタの自動調整がされる。
-超平面的なモノの近似によって[[非構造化データ>#l239718d]]の処理に強い。
***弱み [#c3a537ba]
超平面的なモノの近似なので、
-必要となる学習データの数が膨大になる。
--パラメタの数に依存~
(パラメタ数は以下に依存)
---層の深
---層の幅
--「バーニーおじさんのルール」では、~
ニューラルネットワークの重みパラメタの数に対して、~
最低その10倍以上の訓練データが必要となると言われている。
---必要に応じて「[[データ拡張(data augmentation)>ニューラルネットワーク#cb59f056]]」する。
---データ量が少なすぎる場合は、深層学習以外のアプローチを検討。~
(とは言え、[[非構造化データ>#l239718d]]の場合は深層学習が必要になる)
-この結果、計算量も膨大になる。
-また、
--結果の解釈ができない。~
([[ブラック・ボックス>https://techinfoofmicrosofttech.osscons.jp/index.php?Azure%20Machine%20Learning%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0%E3%83%BB%E3%83%A2%E3%83%87%E3%83%AB#d762e31b]])
--[[過学習を起こし易い。>ニューラルネットワーク#c342ee03]]
--チューニングも難しい。
>などの問題もある。
**対象 [#y3022c10]
***[[構造化データ>データサイエンス力#rbb1736e]] [#ld96fef5]
構造化データも対象にできるが、[[機械学習>機械学習(machine learning)]]と比べ、優位性はそれほど高くない。
***[[非構造化データ>データサイエンス力#nfee8484]] [#l239718d]
[[機械学習>機械学習(machine learning)]]では精度が出なかった非構造化データを対象にできる。
-[[言語処理]] > [[言語処理(AI)]] > [[機械翻訳]]
-[[音声処理]] > [[音声処理(AI)]] > [[音声合成、音声認識>音声処理(AI)#w2a024a8]]
-[[画像処理>画像処理とコンピュータビジョン]] > [[画像認識(AI)>画像処理とコンピュータビジョン(AI)]] > [[物体識別>画像処理とコンピュータビジョン(物体識別)]]、[[物体検出>画像処理とコンピュータビジョン(物体検出)]]、[[領域検出>画像処理とコンピュータビジョン(領域検出)]]、[[特定領域検出>画像処理とコンピュータビジョン(特定領域検出)]]
が、特に非構造化データのベクトル化の方法がポイントになる。
***目視作業の自動化 [#yc116971]
[[フロントオフィス業務で画像認識を使うケースが多い。>AIの活用例#o1def02d]]
***異常検知の自動化 [#r4874bff]
上記を使った異常検知など。
-老朽化診断
-品質管理、不良品検品(不良品を認識して弾く
**歴史 [#v1f9d9ba]
※ 参考:[[AIの歴史>人工知能(AI)#r0e1aab0]]
***1943 [#j4a932d0]
[[ニューラルネットワーク]]の基礎
***1951 [#p98e414b]
世界初のニューラルネットワーク学習マシン(SNACR
***1957 [#r6ce4903]
[[パーセプトロン]]
***1979 [#s189d458]
福島邦彦によってCNNのネオコグニトロン提唱。
***1982 [#xf92afeb]
ポップフィールドネットワーク
***1985 [#z31cfb27]
ボルツマンマシン
***1986 [#i0340ccc]
[[誤差逆伝播法(バックプロパゲーション)>深層学習の誤差逆伝播法]]の再発明、以後定着
***1989 [#gecfeadd]
[[ネオコグニトロン>#s189d458]]+[[バックプロパゲーション>#i0340ccc]]=[[LeNet>畳み込みニューラルネットワーク(CNN)#l62c4148]]
***1998 [#l4dfaaff]
[[LeNet-5>畳み込みニューラルネットワーク(CNN)#l62c4148]]
***2006 [#q7a47678]
-[[オートエンコーダー>ニューラルネットワーク#l7546f0f]]
-トロント大学のジェフリー・ヒントンが深層学習ブームの~
火付け役となったDeep Belief Network(DBN)を発表
***2010 [#y3991151]
[[画像認識(CNN)大規模画像認識競技会(ILSVRC)>畳み込みニューラルネットワーク(CNN)#x295ae3d]]が始まる。
***2012 [#ga6a692f]
-[[ILSVRC>畳み込みニューラルネットワーク(CNN)#x295ae3d]]~
ジェフリー・ヒントン率いるSuperVision(チーム名)~
の[[AlexNet>畳み込みニューラルネットワーク(CNN)#l62c4148]](CNNアーキテクチャ名)が圧倒的な勝利を収めた。
-Googleの猫
--[[教えることなく>機械学習(machine learning)#q8d902ca]]、AIが自発的に猫を認識することに成功した。
--AIは画像内の特徴を認識し自発的に分類できるようになった。
***2014 [#gd4ee195]
-[[ILSVRC>畳み込みニューラルネットワーク(CNN)#x295ae3d]]
--[[GoogLeNet>畳み込みニューラルネットワーク(CNN)#l62c4148]](Google~
分類、検出部門で優勝
--[[VGGNet>畳み込みニューラルネットワーク(CNN)#l62c4148]](オックスフォード~
分類部門で2位
***2015 [#ca8279e0]
-[[ILSVRC>畳み込みニューラルネットワーク(CNN)#x295ae3d]]
--Microsoft Researchの[[ResNet>畳み込みニューラルネットワーク(CNN)#l62c4148]]が、初めて人間のエラー率 5% を上回る精度を達成。
--≒ 機械が目を獲得した。機械のカンブリア爆発(飛躍的進化)が予測された。
***2017-18 [#na3b6c9f]
-[[Transformer>言語処理(AI)#a5995dbe]]
-[[ELMo>言語処理(AI)#h28a6b7f]]
-[[GPT-n>言語処理(AI)#a1d46512]]
-[[BERT>言語処理(AI)#l0841a18]]
***2019 [#lc7b2145]
-[[ILSVRC>畳み込みニューラルネットワーク(CNN)#x295ae3d]]
--[[EfficientNet>畳み込みニューラルネットワーク(CNN)#l62c4148]]が効率的なスケールアップ規則の採用で、~
当時、パラメタ数を大幅に減少させ最高水準の精度を上回る。
**違い [#y7246d27]
***[[機械学習>機械学習(machine learning)]]との違い [#n79f51f7]
階層的な[[特徴量>機械学習(machine learning)#t209d0ea]]の学習が、[[機械学習>機械学習(machine learning)]]と決定的に異なる点。
***[[ベイズ統計]]との違い [#f411bfa0]
-ベイズ法はトップダウン方式~
AIが類例を認識すれば、様々なパターンに対応できるようになる。
-深層学習はボトムアップ方式
--AIが生データで学習して成長していく。
--大量のデータが必要で、類似問題しか解けない。
--[[GAN(敵対的生成ネットワーク)>ニューラルネットワーク#b6b45e6b]]で弱点を補う。
*詳細 [#q6f23008]
**[[アルゴリズム>#x4fc5805]] [#cb519005]
***[[パーセプトロン>#w6bd8ae5]] [#pf37d527]
***[[ニューラルネットワーク>#kffda136]] [#wdfc3a18]
**[[ニューラルネットワークの体系>ニューラルネットワーク#p7254b04]] [#v304c2b9]
***[[ディープニューラルネットワーク(DNN)>ニューラルネットワーク#ge448516]] [#z05578bf]
***[[順伝播型ニューラルネットワーク(FNN)>ニューラルネットワーク#mcd402f7]] [#z05578bf]
***[[畳み込みニューラルネットワーク(CNN)>ニューラルネットワーク#fb7864bd]] [#e48558bc]
***[[再帰型ニューラルネットワーク(RNN>ニューラルネットワーク#sa1d8d21]]) [#b6860fd5]
-[[長短期記憶ニューラルネットワーク(LSTM)>ニューラルネットワーク#o836d6ff]]
-[[Encoder-Decoder と Sequence-to-Sequence>ニューラルネットワーク#r88c8251]]
***生成モデル系のニューラルネットワーク [#s7a33f08]
-[[自己符号化器(AE:オートエンコーダ)>ニューラルネットワーク#l7546f0f]]
-[[敵対的生成ネットワーク(GAN)>ニューラルネットワーク#b6b45e6b]]
-[[自然言語処理(NLP)モデル>言語処理(AI)#vff8ca8d]]
***[[深層Qネットワーク(DQN)>ニューラルネットワーク#d10f2743]] [#ge672325]
***[[制限ボルツマン・マシン(RBM)>ニューラルネットワーク#s93fc300]] [#g05866bf]
**CPU、GPU、TPU [#f674295b]
***CPU [#wef51220]
-多機能で汎用的
--OSのサポート
--仮想化
--命令実行順番変更
-複雑で連続的な処理が得意で早い。
-浮動小数点数の計算回数であるFLOPSは低い。
***GPU [#y9b7e27c]
-もともとグラフィックス計算のためのプロセッサ
-比較的低性能のユニット・コアを大量に積んだ並列的な処理が得意。
-CPUに対して浮動小数点数の計算回数であるFLOPSは高い。
-深層学習は並列処理に向いた単純な行列演算が多く高速化が期待できる。
-GPUの計算戦略
--CPU⇔GPU通信回数の削減
---はじめに全てのデータを送信する。
---計算を済ませて結果をCPU側に送り返す。
--並列数をふやす
---ユニット・コアへ効率よく計算タスクを分配し、並列数の大きい計算を行う
---MN行列AとNK行列Bのドッド積=MK行列Cを計算する場合、MユニットKコアをフル稼働させて一度に処理。
|ユニット¥コア|C1 |C2 |C... |CK |h
|U1 |c11 |c12 |c1...|c1k|
|U2 |c21 |c22 |c2...|c2k|
|U... |c...1|c...2|c... |c2k|
|UM |cM1 |cM2 |cM...|cMk|
-また、計算を極限まで早くする方法として、次に考えられたのが[[分散処理>E資格:試験対策#wdb9491a]]。
***TPU [#if5182c0]
Google社が開発した、[[テンソル>NumPy#h768806a]]計算処理に最適化された特定用途向け集積回路(ASIC)
***GPGPU [#cd27240e]
GPGPU(general purpose GPU)
-グラフィック以外の目的での使用に最適化(汎用化)されたGPU
-GPUの演算資源をグラフィックス計算以外の目的に応用する技術
***開発環境 [#p86e71b3]
GPGPU制御を行う開発環境
-外部からの制御がないと動かないため複雑な処理はできない。~
GPUに対して命令を行うソフトウェアをインストールしてGPUを制御する。
--GPUのメモリへのデータの転送
--GPUのコアに対しての演算命令
-開発環境
--CUDA~
NVIDIA社のGPUでは、CUDAという深層学習用開発環境~
が整えられていて、計算用の関数などが使用できる。
--cuDNN~
TensorFlow・Keras、PyTorchの下位スタックで動く。~
更に下位スタックで、前述のCUDAが動作する。
-開発環境構築手順
--GPUをインストール
--CUDAをインストール
--cuDNNをインストール
--GPUに対する各種設定
--GPU対応TensorFlow・Kerasなどでプログラムを書いて実行
**その他 [#cf1a772e]
***[[言語・ライブラリ>#d5663923]] [#x9655d10]
***[[フレームワーク>#aee683ea]] [#u2b6b329]
***[[ファースト・ステップ>#a8f0f18e]] [#oad04818]
*言語・ライブラリ [#d5663923]
**言語 [#s6f6f6ed]
***[[Python>Python#h004167c]] [#q198c3c3]
***R言語 [#n6b8ee0c]
**ライブラリ [#p08be52f]
***[[NumPy]] [#df49851b]
***[[Matplotlib]] [#bdad33d8]
*フレームワーク [#aee683ea]
**Theano [#b355b02c]
-MILAのOSS(3条項BSD)で2007年に初版リリース
-2017年以降、メンテナンス・フェーズ
***言語 [#s26dacb0]
Python(コンパイラ、ライブラリ)
***特徴 [#x8dd05f4]
Numpyのように計算手続きを記述するのではなく, 数式そのものを記述.
-このことによって, 計算対象となる行列等の実体のプログラム内での~
引き回しを考える事なく, 最適化や[[GPU>#y9b7e27c]]による高速化の恩恵が受けられる.
-また, [[微分を (数値的ではなく) 解析的に実行>DS:数学的基礎 - 微分・偏微分#w4dd09ea]]する事が出来る.
***参考 [#dd1542ee]
-Theano 入門~
http://www.chino-js.com/ja/tech/theano-rbm/
**Caffe [#pfd4e638]
Yangqing Jiaら当時Berkeleyのメンバーが中心に2013年頃~
開発したOSS(BSD)のディープラーニングフレームワーク
-Convolutional Architecture for Fast Feature Embedding.
-前身はDeCAF (Deep Convolutional Activation Feature)
***言語 [#q68daad1]
C++で実装、Pythonのインターフェイスあり。
***特徴 [#ua2d6646]
-コードを書かなくても設定ファイルだけで動かせる
-容易に拡張できるコード設計
-PythonとMatlabからも使える
-高速(C++実装、[[GPU>#y9b7e27c]]をシームレスに使い分け)
-Githubの活発な開発コミュニティ
-画像認識向き
--画像分類
--シーン認識
--物体検出
--領域分割
***参考 [#f85f4a9d]
-Caffeで始めるディープラーニング~
https://www.slideshare.net/KotaYamaguchi1/caffe-71288204
**Chainer [#uc31e941]
-2015年に株式会社Preferred Networks(PFN)からリリース。
-2019年12月5日、[[PyTorch>#nf0c1f92]]に順次移行すると発表。
***言語 [#pc74fbb4]
Python
***特徴 [#j89ff3cd]
特⻑:様々なNNを直感的に記述可能
-NNの構築をPythonのプログラムとして記述
-CuPyによる[[CPU>#wef51220]]/[[GPU>#y9b7e27c]] agnosticなコード記述
-動的なNN構築(Define-by-Runの独自コンセプト)を採用
--しかし入力データによって計算グラフの構造が変化する[[RNN>#b6860fd5]]など[[CNN>#e48558bc]]以外のニューラルネットワークが台頭し、
--ニューラルネットワークの構造を柔軟に制御できるDefine-by-Runが、Define-and-Runに比べて優勢に。
***参考 [#hb1b0d3d]
-Chainer - Wikipedia~
https://ja.wikipedia.org/wiki/Chainer
-ディープラーニングフレームワークChainerの紹介と⾃動チューニングへの期待~
http://atrg.jp/ja/index.php?plugin=attach&pcmd=open&file=20151225-ATTA-oono.pdf&refer=ATTA2015
-PFN、深層学習フレームワークを自社開発の「Chainer」から「PyTorch」に切り替え - PC Watch~
https://pc.watch.impress.co.jp/docs/news/1222796.html
**CNTK [#e6c69a6a]
(Microsoft Cognitive Toolkit)
-2015年にMicrosoftからリリース。
-2016年にMITライセンスでGitHubに公開。
***言語 [#o2a8bc82]
C++、Python、.NET、BrainScript
***特徴 [#g3a24480]
-リソース効率が良い。
-[[ONNX>#e846e795]]を初めてサポート
-コミュニティ発展が課題
***参考 [#m25f6dc0]
-Microsoft Cognitive Toolkit - Wikipedia~
https://ja.wikipedia.org/wiki/Microsoft_Cognitive_Toolkit
**Facebook(Meta)の [#vfe46516]
***[[PyTorch]] [#nf0c1f92]
専用項を設けた。
**Googleの [#p815ead8]
***[[TensorFlow>TensorFlow・Keras#e01488e3]] [#e01488e3]
専用項を設けた。
***[[Keras>TensorFlow・Keras#qf4950a1]] [#pbbedad3]
専用項を設けた。
**[[ONNX]] [#e846e795]
専用項を設けた。
*開発・運用環境 [#ad2081d8]
**モデルの軽量化 [#c83ee43f]
***プルーニング [#j1a34455]
-計算を高速化する手法
-学習後、ニューラル ネットワークの
--レイヤー間の繋がりを切り、
--(重要度の低い重みの一部を0にする(疎行列化する)ことでノードを削減し)
--パラメタ(エッジとノード)数を削減
-パラメタ削減後、再学習して精度を保つ。
-2種類のアプローチ
--ニューロン単位でニューロン毎の重要度に基づきニューロンを削減
---L2正則化を加えて学習後に、絶対値が小さい重みを0にする。
---CNNでは難しい(ニューロン削減後も構造保持が必要)。
--チャネル単位でチャネルを生成するフィルタ単位で削減
---各層のフィルタの重みの絶対値の総和が小さいものから各層の削減率分、削減
---以下にチャネル単位のプルーニングの代表的な2つのモデル~
・Network Slimming:各チャネルの出力を scaling する変数γを導入し、学習後、γ値が小さいチャネルを削減~
・Channel Pruning と ThiNet:特徴マップの誤差が最小となるチャネルを削除。
***蒸留 [#gd8c5aea]
-概要
--計算リソースを軽量化し精度も向上するモデル圧縮の1つ。
--一度訓練した大規模なモデルが得た知識を別の軽量なモデルに継承する。
-詳細
--教師モデルの推論結果を生徒モデルの訓練データに使用することで汎化した性能を示す。
---soft target loss(教師モデルの推論結果との差)
---soft target loss(教師モデルの推論結果との差)& hard target loss(教師データとの差)
--敵対的攻撃に対して頑健なモデルが得られるという性質がある。
--データ拡張して教師モデルに入力、アンサンブル(平均)した結果を~
生徒モデルの訓練データに使用すれば、精度向上を図る事ができる。~
([[半教師あり学習>機械学習(machine learning)#cdebd400]]と異なりラベルなしデータ活用の意図はない。)
***量子化 [#oea41d77]
例えばLLMのBERTでは、600MBぐらいがパラメタになる…モバイルやIoTでは難しい。
-概要
--パラメタの精度に落とすことでモデルサイズを削減
---浮動小数点を64 bit → 32 bit
---深層学習用のBf16(符号:1、指数:8、仮数:7)
--量子化すると、
---計算の高速化
---省メモリ化
---精度が下がる。
--対象~
数値表現されるモノが対象となる。
---パラメタ(重みとバイアス)
---アクティベーション(活性化関数の出力)
---その他、入力値、勾配、エラーなど
-代表的な手法
--二値化
---BinaryConnect:パラメタを二値化
---BinaryNet:パラメタとアクティベーションを二値化
---XNOR-Nets:パラメタとアクティベーション、入力値も二値化
--三値化~
Ternary Weight Networksなどがあり、-1, 0, 1と0を含んだ値を使える。
--それ以外~
---DoReFa-Net~
・ビット長のみハイパー・パラメタ~
・パラメタとアクティベーション、勾配も量子化~
---Quantized Neural Networks
勾配計算も量子化する手法
**分散処理 [#wdb9491a]
-[[GPU>#c329395a]]を複数用いてより高速な計算を可能にする。
-ただ、GPUを2つ用意すれば2倍で計算が可能と言う事ではない。
-以下のような工夫が必要になる。
--同じ精度を出すためのアルゴリズム上の工夫
--ハードウェアと高速にやりとりができるようなシステム構築
-分散深層学習の並列化び二つの代表的な手法(同期・非同期)
***データ並列(Data parallel) [#ab15da94]
-同じモデル計算の機構を複数のGPU上に構築し、データを分散させて計算し、統合を図る。
-各GPUにおいて異なるパラメタが訓練されるので、結果を合わせて最終的な学習済みモデルを得る。
-結果を合わせるモデルの統合方法については、以下の2つが有名。
--非同期型更新
---勾配計算後、勾配をパラメタ・サーバに送信し平均などの補正済み勾配を受けパラメタ更新。
---最後に計算が終わったGPUだけが正しいバッチ・サイズで計算でき全体の精度が落ちる。
---新しいモデルのパラメタが古い勾配情報で計算されてしまう恐れがある。
--同期型更新
---勾配計算後、全ノードの結果を共有し平均などの補正済み勾配を受けパラメタ更新。
---バッチ・サイズが一律になるが、同期の待ち時間や、ボトルネックが発生し得る。
***モデル並列(Model parallel) [#b939a9ed]
-アーキテクチャ
--モデルを幅で分割して、別々のGPUを割り当てる。
--モデルを深さで分割して、別々のGPUを割り当てる。
--一般的に幅で分割した場合の方が境界超え回数=通信回数が増える。
-トレードオフ
--メリット:正しいバッチ・サイズで計算できる。
--デメリット:分割した境界を超える度に通信が発生。
**ハード・システム基盤 [#z56e0733]
***[[GPU>#y9b7e27c]] [#c329395a]
***[[Docker]] [#rf97cfbc]
***学習済モデル [#j22e753a]
-TensorFlowHub~
デプロイ可能なトレーニング済み機械学習モデルのリポジトリ
*ファースト・ステップ [#a8f0f18e]
**ランタイム・ライブラリ [#v83720ba]
***[[Python>Python#v4af3ac8]] [#k709ad03]
***[[NumPy>NumPy#sbc10627]] [#df49851b]
***[[Matplotlib>Matplotlib#we6a680f]] [#z2cb7da4]
**アルゴリズム [#x4fc5805]
***[[パーセプトロン]] [#w6bd8ae5]
***[[ニューラルネットワーク]] [#kffda136]
**[[データ マイニング(DM)>ビジネス インテリジェンス(BI)#e41307d0]] [#gf118a91]
*参考 [#ub1098e2]
-コンテンツへのリンク - OSSコンソーシアム~
https://www.osscons.jp/joho108j0-537
--機械学習・深層学習についてのレポート~
https://1drv.ms/p/s!Amfs5caPP9r5jh-m6pIMwKgDln1N
--機械学習・深層学習についてのNotebook~
https://github.com/OpenTouryoProject/DxCommon/tree/master/Notebook/Jupyter
**Wikipedia [#s1a458be]
-ディープラーニング~
https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%A3%E3%83%BC%E3%83%97%E3%83%A9%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0
-Python~
https://ja.wikipedia.org/wiki/Python
-NumPy~
https://ja.wikipedia.org/wiki/NumPy
-Matplotlib~
https://ja.wikipedia.org/wiki/Matplotlib
**Qiita [#rfe01904]
-最近、Neural Network Console の動画がやたら充実している件~
https://qiita.com/jun40vn/items/052d9836035ed1c4933e
**YouTube [#y1f8375e]
-そうだったのか!可視化して理解するディープラーニング~
https://www.youtube.com/watch?v=RJu4DeU1me8
***某处生活_LiveSomewhere [#sf4a0e55]
-[[G検定対策>G検定:試験対策#ce1bf350]]
-ディープラーニング(≒ DNN入門
--PART0:初心者のための前準備~
https://www.youtube.com/watch?v=9f-y8ux_6ck
--PART1:順伝播(入力層~中間層の仕組み)~
https://www.youtube.com/watch?v=i0JIaEDGSCE
--PART2:順伝播(出力層と誤差計算)|softmax & cross entropy~
https://www.youtube.com/watch?v=HF9gMDMuN8k
--PART3:誤差逆伝播|バックプロパゲーション|チェインルール~
https://www.youtube.com/watch?v=QddzS4gONXs
--PART4:kerasでの実装|Google Colaboratoryで演習~
https://www.youtube.com/watch?v=HQo4N1R61yw
-[[RNN入門>再帰型ニューラルネットワーク(RNN)#r1c700a1]]
-CNN入門
***t-uesugi/videos [#ga71ee2d]
-機械学習概論
--1 1. 人工知能と機械学習~
https://www.youtube.com/watch?v=-eea-vsx-Qs
--1 2. 機械学習の分類~
https://www.youtube.com/watch?v=oWnquePWiuA
--1 3. 機械学習の流れ~
https://www.youtube.com/watch?v=wwT64eZvYkE
--1 4. データの分割~
https://www.youtube.com/watch?v=xBuwXzixuNc
--1 5. 過学習と交差検証~
https://www.youtube.com/watch?v=aGAnu3DeF1k
--2 1. 精度評価指標 混同行列, 正解率, 精度, 再現率, F値, 決定係数, RMSE, MAE~
https://www.youtube.com/watch?v=vFCPQy-Gcj8
--2 2. 代表的な機械学習手法~
https://www.youtube.com/watch?v=Omf4GMV-CnQ
--2 3.データの質と量~
https://www.youtube.com/watch?v=-TuY3t2ZbMs
--線形回帰
---1.最小二乗法と勾配法、2.線形回帰を使った課題~
https://www.youtube.com/watch?v=nQVmc_JgCxQ
---3.Ridge回帰とLasso回帰、4.Lasso回帰を使った課題~
https://www.youtube.com/watch?v=CXf2sz5lvng
---5.ロジスティック回帰、6.ロジスティック回帰を使った課題~
https://www.youtube.com/watch?v=JQGS2JfRt3Q
-ニューラルネットワーク
--1. ノードと層~
https://www.youtube.com/watch?v=pXmmZrXyONw
--2. アフィン変換~
https://www.youtube.com/watch?v=pV_jyrsBbkE
--3. 活性化関数~
https://www.youtube.com/watch?v=-Wt8PQJlgZY
--4. 順伝播から勾配法へ~
https://www.youtube.com/watch?v=rHbwmBJyV2s
--5. 誤差逆伝播法~
https://www.youtube.com/watch?v=lctO5afCBmY
-[[CNNに絞った内容>畳み込みニューラルネットワーク(CNN)#o71ae073]]
***AIcia Solid Project [#z59ed24b]
-深層学習 ディープラーニングの世界~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxKXf__soUoAEOrbLAOnVHCP
--vol. 1 ディープラーニングとは関数近似器である~
https://www.youtube.com/watch?v=SyWwoMpP_P4~
--vol. 2 学習 - なぜ必要なのか?何をするのか?~
https://www.youtube.com/watch?v=RLlTmbyJORM
--vol. 3 関数 - なぜ「深さ」が AI を生み出しているのか?~
https://www.youtube.com/watch?v=Mw4j4yPsFtg
--vol. 4 全結合層 - それはいちばん大事な部品のお話~
https://www.youtube.com/watch?v=FYDJ439Va_Y
--vol. 5 畳み込み層の本当の意味、あなたは説明できますか?~
https://www.youtube.com/watch?v=vU-JfZNBdYU
--vol. 6 プーリング層 - シンプルだけど大きな役割を担う層~
https://www.youtube.com/watch?v=MLixg9K6oeU
--...
-カサゴ3点
--[[CNNに絞った内容>畳み込みニューラルネットワーク(CNN)#o0b2397c]]
--[[RNNに絞った内容>再帰型ニューラルネットワーク(RNN)#u8f2a523]]
--強化学習Live~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxI0T0FSxJfHdkeH3gM7f0H-
-分析
--いろんな分析シリーズ~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxJGiLwq2CRS87J51ZPU5IEM
--時系列分析~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxJV9Az0hJs0Ralu2N81mO8R
-数学
--線型代数基礎シリーズ~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxKfmufxF59vaZECZJD5j6rd
--ベイズ統計~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxIU4Hd1G1UdIVzHpgKfyEnw
--週末微分幾何~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxLbldij-bqLXHTahD5DPv3T
--確率微分方程式~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxIhf-iRKYTVOSXPqDGgfRFP
-AIのふわふわした話~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxI_vbIwZQvnu8250ZVVQfNO
-単発動画
--数学の単発動画~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxKx8G1sulyyn2rf2xh-Ng7i
--統計学の単発動画~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxIu7Lrje-zhAMxnhThBiqsS
--機械学習の単発動画~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxJz2A0rBwtZgmeZOcpc8GFS
-つまみぐい
--線型代数つまみぐい~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxKW4fdRvBu3P3cMPpxSXEu1
--解析学つまみぐい~
https://www.youtube.com/playlist?list=PLhDAH9aTfnxLRTcq54cgSKaQGAkogxsw_
***AI教室 AIRS-Lab [#o49c1a2e]
-https://www.youtube.com/@yuky_az
-https://www.youtube.com/@yuky_az/playlists
-https://github.com/yukinaga
※ プロモーション動画の比率が高い。
***AGIRobots [#s1b4e09f]
-https://www.youtube.com/@AGIRobots
-https://www.youtube.com/@AGIRobots/playlists
※ https://agirobots.com/
***Neural Network Console [#ldf206c0]
-https://www.youtube.com/@NeuralNetworkConsole
-https://www.youtube.com/@NeuralNetworkConsole/playlists
***予備校のノリで学ぶ「大学の数学・物理」 [#p9b8901b]
-【機械学習】深層学習(ディープラーニング)とは何か~
https://www.youtube.com/watch?v=s5_Pk3CjhNA~
-絶対に理解させる誤差逆伝播法【深層学習】~
https://www.youtube.com/watch?v=0itH0iDO8BE
-[[CNNに絞った内容>畳み込みニューラルネットワーク(CNN)#o71ae073]]
**ゼロから作るDeep Learning [#w79e9c10]
***[[Pythonで学ぶディープラーニングの理論と実装>ニューラルネットワーク#w79e9c10]] [#t1f0c42d]
***[[自然言語処理編>言語処理(AI)#s380107d]] [#af32b22d]
***フレームワーク編 [#e66e92e8]
https://www.oreilly.co.jp/books/9784873119069/
-サンプル~
https://github.com/oreilly-japan/deep-learning-from-scratch-3
-その他、参考~
***[[強化学習編>強化学習(Reinforcement Learning)#ya905060]] [#b8033ffd]
**農学情報科学 [#i8e0df23]
https://axa.biopapyrus.jp/
***[[機械学習>機械学習(machine learning)#k797ea25]] [#y72baa74]
***深層学習 [#k6df98e9]
https://axa.biopapyrus.jp/deep-learning/
**用語 [#ef946ec2]
***One Learning Theory [#x487f345]
-KDDI-RA-201405-01-PRT.pdf~
https://rp.kddi-research.jp/download/report/RA2014005
--脳科学の世界には~
「One Learning Theory(たった一つの学習理論)」~
と呼ばれる仮説がある。
--それは「視覚野」、「聴覚野」、「感覚野」など、大脳皮質の異なる領域が、~
実は同一の認知機構に従って動作している、とする仮説である。~
--これが正しければ、視覚野の認知機構に基づく[[スパース・コーディング>#cc2f9749]]は、~
単に画像認識のみならず、例えば聴覚(つまり音声認識)など他の分野にも応用できる。
***スパース・コーディング [#cc2f9749]
-入力の一部または全体を、辞書に含まれる要素の組み合わせで表現しようというもの。
-スパースなデータ表現とは、
--データを表現するための辞書を用意し、
--その要素のできるだけ少ない組み合わせでデータを表現すること。
-参考
--【スパースコーディング】スパースなデータ表現の利点 - Qiita~
http://qiita.com/IshitaTakeshi/items/5ff69d62b902446d1473