マガジンのカバー画像

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

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

記事一覧

Python pydotplusのインストールがうまくいかない時の対処方法

決定木学習の結果を画像ファイルに出力する際、pydotplusというPythonライブラリを使用するのですが、このインストールにかなり苦戦したので誰かの参考になればと思い記事にします。 (こういう話題はプログラミング系のプラットフォームで発信すべきなのでしょうね・・・) 症状使用環境は、Mac(OS:Catalina)、Anaconda、JupyterNotebookです。 ターミナル上で以下のコマンドを実行してpydotplusをインストールしました。 pip inst

夢の工程表を作ってみた~機械学習中級者への道のり~

自分の夢を叶えるために、自分なりに考えて「夢の工程表」を作って実行する取組みを始めました。これには途中で挫折しないように3つの工夫を凝らしました。 工夫 1 動機を忘れないようにする 2 学習後の姿を明確にする 3 成長を実感できるようにする きっかけ「今の仕事は自分がやりたいことじゃない。自分のやりたいはAIとかデータ分析だ。だから自分がやりたいことを勉強してそっちの道にいけるようになろう。」 これは私がそもそもプログラミングを勉強しようと思ったきっかけの一つです。

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

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

第34話 オリジナルAIの実装失敗・・・そこから見えた新しい世界

約4ヶ月の学習期間を経てようやくディープラーニングを実装できるだけの知識が備わったので、学んだことを活かしてオリジナルAIを実装しました! そしてタイトルに書いたとおり見事に失敗しました^^; でも失敗したとはいえ、大きな学びがありました^^v 今回は次の観点からお話し ・AIを実装するまでの思考のプロセス ・プログラムの実行結果、考察 ・結果から得た学び どんなAIを作るのか今回AIで実現したいことはこれです。ドゥルルルル〜ジャン! 「細胞を数えるAI」 ・・・えっ

第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. 勾配を求める一般式 -おさらい-