マガジンのカバー画像

ディープラーニングに挑戦するよ

39
最近はやりのAI(ディープラーニング)のプログラミングに挑戦するお話です。ディープラーニングの理論だけでなく、ソースコードも併記して少しでもわかりやすく努めてます。応援よろしくお…
運営しているクリエイター

#ディープラーニング

第35話 オリジナルAI失敗の原因を考察してみる

前回オリジナルAIを作って見事失敗に散り、学習に使用したデータセットに問題があるのでは?と原因を推測したところで終わっていました。 そこで今回はこの推測を深掘りしてみようと思います。 ちなみに前回が気になったらコチラからどうぞ。 お手本のデータセットはどうなっている?オリジナルAIは、scikit-learnの手書き数字のデータセット(digits_dataset)に対して効果的な学習ができた畳み込みニューラルネットワーク(CNN)をお手本にして作成しました。ではこの手書

第33話 AIの良し悪しアヤメで測る!? Irisデータセットとは

これまでディープラーニングのことを色々と学習してきましたが、今回は少し毛色が変わります。 ディープラーニングに限らず、機械学習(いわゆるAI)では学習するためのデータと、学習が完了したAIを評価するためのデータが必要になります。 そこでよく使われるのがIrisデータセットです。(Iris=アヤメ) 今回はIrisデータセットについて学習します。 Irisデータセットって?1936年に統計、生物学者であるRonald Fisherの「The use of multiple

第32話 地味だけど利く ディープラーニングを成功させる小技8選

ディープラーニングとは、多層化したニューラルネットワークによる学習を指しますが、多層化することに伴い様々な問題が発生すること前回勉強しました。(詳細はこちらからどうぞ) 今回はそれらの問題点に対する対策を学習します。 問題点と対策をまとめると下表のようになります。 今回はこれらの対策について、1つずつ学習していきます。 ぶっちゃけ対策自体は地味です。(個人的にはドロップアウト以外は地味) 地味ですが、問題を解決するのには効果があります。 ディープラーニングの問題点を克服す

第31話 ディープラーニングの問題点

ディープラーニングの勉強を始めて苦節3ヶ月ちょい、やっとディープラーニングを勉強するための下地が整いました! 長く苦しい道のりでした。 未知のコンピュータ言語Phython、退屈な数学を乗り越えついにここまでやってきました。 ここまで頑張れたのも、こんなマニアックな記事を読んでくださる方がいるからです。 いつもありがとうございます。 さてこれからディープラーニングを本格的に学んでいくわけですが、今回の学習内容はディープラーニングの代表的な問題についてです。 それでは学習

第30話 実装!分類問題バックプロゲーション

新型コロナウイルス対応で会社の勤務時間が変わって、なかなか時間を取るのが難しくなってきましたが頑張っています! 今回は分類問題のバックプロゲーションの実装です。(バックプロゲーション=自動学習アルゴリズム) ネットワークにx,y座標を入力し、sinカーブを境界線として領域をA,Bに分類する例をやってみます。 結論から言ってしまうとめっちゃキレイに分類してくれます、自動で!バックプロゲーション半端ないです。 ちなみに回帰問題のバックプロゲーション実装はコチラ→第28話、29

第29話 実装!回帰問題バックプロゲーション ソースコード解説編

前回は、回帰問題のバックプロゲーション実装例ということで、ソースコードとその出力結果を紹介しました。 今回はそのソースコードの詳細を解説していきます。 というのも、いきなり小難しいソースコードの詳細を解説されても読む気がしなくなると思って、先にソースコードと実行結果を示しました。 頂上の見える山登りと見えない山登りだったら、前者の方が良いでしょう? さて、前回実装ニューラルネットワークは次のようなものでした。  入力層:ニューロン数1  中間層:1層、ニューロン数1(は

第28話 実装!回帰問題バックプロゲーション 実行結果編

第20話からバックプロゲーションについて学習してきましたが、実装するための準備(必要知識の習得)がついに整いました! いよいよ待ちに待ったバックプロゲーションの実装です。 今回は回帰問題の学習の例として、バックプロゲーションによりニューラルネットワーク(以降NNと呼ぶ)がsin関数を学習する様子を観察します。 それでは学習を始めます。 NNの諸設定今回は次のようなシンプルなNNで学習することとします。  入力層:ニューロン数1  中間層:1層、ニューロン数1(はじめは1

第27話 バッチ学習におけるニューラルネットワークの順伝播・逆伝播

今回は行列を用いたニューラルネットワーク(以降NNとよぶ)の演算について学習します。 実はこれまでにやっていたNNの演算は、層への入出力と正解をベクトルで表現していました。 しかし、前回学習した「バッチ学習」「ミニバッチ学習」ではベクトルではなく、行列を用いて演算することが必要になってきます。 そこで今回は、行列になるとNNの伝播はどうなるかを学習します。 具体的な内容は次のとおりです。 1. バッチ学習における行列(信号)の形式 2. バッチ学習における順伝播 3.

第26話 バックプロパゲーションの理解に必要な知識 -バッチサイズ-

今回はニューラルネットワークの学習アルゴリズム"バックプロパゲーション"に必要な5つの知識のうち、5つ目のバッチサイズについて学習します。 <バックプロパゲーションの理解に必要な5要素> ・訓練データとテストデータ ・損失関数 ・勾配降下法 ・最適化アルゴリズム ・バッチサイズ ←イマココ バッチサイズとは、重みとバイアスの更新を行う間隔のことで、ニューラルネットワークの学習効率に大きく影響を与えます。 今回はバッチサイズの概念と3種類の学習タイプについて勉強していきます

第25話 バックプロパゲーションの理解に必要な知識 -最適化アルゴリズム-

今回はニューラルネットワークの学習アルゴリズム"バックプロパゲーション"に必要な5つの知識のうち、4つ目の最適化アルゴリズムについて学習します。 <バックプロパゲーションの理解に必要な5要素> ・訓練データとテストデータ ・損失関数 ・勾配降下法 ・最適化アルゴリズム ←イマココ ・バッチサイズ 今回の具体的な内容は次のとおりです。 1. 最適化アルゴリズムの概要 2. 確率的勾配降下法(SGD) 3. Momentum 4. AdaGrad 5. RMSProp そ

第24話 バックプロパゲーションの理解に必要な知識 -勾配降下法- 回帰問題・分類問題編

今回もニューラルネットワークの学習アルゴリズム"バックプロパゲーション"に必要な5つの知識のうち、3つ目の勾配降下法を学習します。 <バックプロパゲーションの理解に必要な5要素> ・訓練データとテストデータ ・損失関数 ・勾配降下法 ←イマココ ・最適化アルゴリズム ・バッチサイズ 前回は勾配降下法で使用する色々な勾配の一般式を導出しましたが、今回は回帰問題と分類問題における勾配を求めていきます。 具体的な内容は次のとおりです。 1. 勾配を求める一般式 -おさらい-

第23話 バックプロパゲーションの理解に必要な知識 -勾配降下法- 詳細編

今回もニューラルネットワークの学習アルゴリズム"バックプロパゲーション"に必要な5つの知識のうち、3つ目の勾配降下法を学習していきます。 <バックプロパゲーションの理解に必要な5要素> 1 訓練データとテストデータ 2 損失関数 3 勾配降下法 ←イマココ 4 最適化アルゴリズム 5 バッチサイズ 前回は勾配降下法の概要を説明しましたが、今回はもっと深入りした話です。具体的な内容は次のとおりです。 1  求めるべき勾配(前回のおさらい) 2  勾配を求める式のまとめ 3

第22話 バックプロパゲーションの理解に必要な知識 -勾配降下法- 概要編

今回はニューラルネットワークの学習アルゴリズム"バックプロパゲーション"に必要な5つの知識のうち、3つ目の勾配降下法を学習します。 <バックプロパゲーションの理解に必要な5要素> 1 訓練データとテストデータ 2 損失関数 3 勾配降下法 ←イマココ 4 最適化アルゴリズム 5 バッチサイズ 具体的な内容は次のとおりです。ニューラルネットワークが学習するときどういう処理がされているかの概要がわかってくるかと思います。 ・勾配降下法の概要 ・バックプロパゲーションにおける勾

第21話 バックプロパゲーションの理解に必要な知識 -訓練データとテストデータ、損失関数-

今回からNN(ニューラルネットワーク)の学習アルゴリズムであるバックプロパゲーションの中身について学習していきます。 バックプロパゲーションを理解するためには次の5つの要素を知る必要がありました。 <バックプロパゲーションの理解に必要な5要素> 1 訓練データとテストデータ 2 損失関数 3 勾配降下法 4 最適化アルゴリズム 5 バッチサイズ 今回はこのうちの1と2について勉強していきます。 具体的な内容は次のとおりです。 ・訓練データとテストデータ ・損失関数(二乗和