マガジンのカバー画像

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

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

#プログラミング

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

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

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

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

第20話 ニューラルネットワーク学習アルゴリズム"バックプロパゲーション"の概要

今回からはニューラルネットワークの学習アルゴリズムであるバックプロパゲーションについて学習していきます。 前回までにニューラルネットワーク(以降NNと呼ぶ。)の実装を行い、ニューロンの重みとバイアスを設定することの難しさを実感しましたが、バックプロパゲーションをマスターすれば自動で重みとバイアスをコンピュータに決定させることが可能になります。すごい! すごいのは良いのですが、教科書では約50ページの分量があり、数式も連発してきて早くも挫けそうです・・・。 なんとか頑張って

第19話 3層のニューラルネットワークを実装する -分類問題編-

今回は分類問題に対するニューラルネットワーク(以降NNとよぶ。)を実装します。 前回は回帰問題に対する3層のNN(入力層、中間層1つ、出力層)でしたが、今回も同じ3層構造で学習していきますよ。 具体的な内容は次のとおりです。 ・分類問題のNN ・全体のコード ・重みとバイアスの影響 それでは学習を始めましょう。 (教科書「はじめてのディープラーニング」我妻幸長著) 分類問題のNN分類問題と回帰問題のNNは、次の相違点があります。 ・出力層は、1つではなく複数になる。 ・

第18話 3層のニューラルネットワークを実装する -回帰問題編-

今回は回帰問題(出力が連続的な値になる)について、入力層、1つの中間層、出力層の3層NNの実装を学習します。 具体的な内容は次のとおりです。 ・3層のNN ・各層の実装 ・全体の実装 ・重みとバイアスの影響 前回は単一ニューロンの実装でしたので、ステップアップを実感できますね。 それでは学習を始めましょう。 (教科書「はじめてのディープラーニング」我妻幸長著) 3層のNN次のような簡単な3層NNについて考えていきます。 ・入力:2つ ・中間層:1層、ニューロン数2 図

第17話 ニューラルネットワーク(単一ニューロン)を実装する

いよいよ今回からニューラルネットワークの実装に入ります。 ニューラルネットワークは複数の層から成り立ちますが、いきなり難しいところから入っても理解できないので、まずは簡単な単一ニューロンを実装します。 今回の内容は次のとおりです。 ・ニューラルネットワーク(単一ニューロン)の実装 ・ニューロンの特性を掴む(重みとバイアスの影響) それでは学習をスタートします。 (教科書「はじめてのディープラーニング」我妻幸長著) 単一ニューロンの実装簡単な単一ニューロンを実装していきま

第16話 ニューラルネットワークを学ぶ -活性化関数の正体-

ディープラーニングの実装を目指して、ニューラルネットワークを勉強中です。 段々とアルゴリズムのコアに近づいてきて学習が楽しくなってきました。 さて、この回の内容は次のとおりです。 ・ニューラルネットワークで扱う問題の種類(回帰と分類) ・活性化関数の正体 (ステップ関数、シグモイド関数、tanh、ReLU、Leaky ReLu、恒等関数、ソフトマックス関数) 今回の主役は活性化関数。 ニューロンモデルの核心部なのに「追々学習します。」と先延ばしにされてきた部分です。(や

第15話 ニューラルネットワークを学ぶ -順伝播の数式化-

AI(ディープラーニング)のプログラミングを作るために勉強をしています。 現在はニューラルネットワーク(ディープラーニングはこれを多重化したもの)について学習中で、前回はニューロンのモデル化を行いました。 今回はニューラルネットワークを数式に落とし込んでいきます。 具体的な内容は次のとおりです。 ・ニューロンのネットワーク化 ・重みの行列化 ・信号のベクトル化 ・順伝播の数式化 それでは学習のスタートです! (教科書「はじめてのディープラーニング」我妻幸長著) ニュ

第14話 ニューラルネットワークを学ぶ -神経細胞のモデル化-

ディープラーニングのプログラミングを学び始めて1ヶ月ちょい。 Python・NumPy、数学の学習を経ていよいよ今回からニューラルネットワークの学習です。 どんどんマニアックな世界に入っていきますよ。 ディープラーニングは、ニューラルネットワークを多層化したものらしいです。 ということは、ニューラルネットワークはディープラーニングの入り口と言って良さそうですね。 さて、今回の内容は「神経細胞のモデル化」。 具体的には次のとおりです。 ・生物の神経細胞について ・神経細胞

第13話 ディープラーニングに必要な数学知識 -正規分布-

ディープラーニングに必要な数学ということで、今回は正規分布について学びます。 第8話から行列やら微分を学んできましたが、今回でいよいよ数学の勉強は最後です。 いやあ長かった。 今回の内容は次のとおりです。 ・正規分布とは ・正規分布になるデータを作ってみよう ・正規分布の曲線を描いてみよう それでは今回の学習をスタートします! (教科書「はじめてのディープラーニング」我妻幸長著) 正規分布とは自然界や人間の行動・性質などの様々な現象に対してよく当てはまるデータの分布の

第12話 ディープラーニングに必要な数学知識 -微分編 全微分・多変数の連鎖律-

前回に引続き、微分の勉強です。 微分は数学嫌いな方にとっては高い壁ですよね。 微分はディープラーニングではどうやら「勾配降下法」「バックプロパゲーション」で使うようです。 今回もソースコードなしですが、微分の勉強、頑張っていきましょう! 内容は次のとおりです。 ・全微分 ・多変数の連鎖律(合成関数の微分) それでは今回の学習のスタートです! (教科書「はじめてのディープラーニング」我妻幸長著) 全微分変数が複数ある関数でも1変数しか微分しないのが偏微分でした。 これに

第11話 ディープラーニングに必要な数学知識 -微分編 常微分・偏微分-

今回から微分について勉強していきます。 ディープラーニングの理論を学ぶために、微分の知識は必須だそうです。 微分といえば数学の王様チックな響きがあって、苦手意識を持っている方も多いのではないでしょうか。 私も高校で初めて習った時は意味不明でしたが、繰返しやっていくうちになんとなく理解できました。 なので頑張れば誰にでも理解できるものだと思います。 内容は次のとおりです。 ・微分とは ・常微分 ・合成関数の微分(連鎖律) ・偏微分 それでは今回の学習のスタートです!

番外編 matplotlibグラフの諸設定方法 -フォント、マーカ・線、凡例位置-

Pythonのmatplotlibを使ってグラフを描くとき、色々な設定が可能なのでまとめてみました。 内容は次のとおりです。 ・フォントの設定 ・マーカ、線の設定 ・凡例位置の設定 ・サンプルコード とは言っても、この記事で全ての設定方法を網羅しているわけではないのでご了承ください。 フォントの設定フォントは設定できるパラメータがいくつかあります。 マーカ、線の設定 plot、scatterで使える設定です。 色、マーカ、線は  'rx-'   (色:赤、マーカ:x

第10話 ディープラーニングに必要な数学知識 -線形代数 行列の演算-

前回に引続き、線形代数を学んでいきます。 今回は行列の演算についてです。 ディープラーニングでは行列計算を多用するらしいので、今回学習することはきっと重要でしょう。 内容は次のとおりです。 ・スカラーと行列の演算 ・行列の要素同士の演算(アダマール積) ・行列同士の掛け算(行列積) ・ベクトルと行列の演算 ・行列の転置 ちなみに教科書の1/4くらいが終わりました。 本丸のディープラーニングに到達するまでの道のりは険しいですね・・・。 それでは今回の学習のスタートです