
深層学習ライブラリ(Pytorch)を用いたレクチャの中でも本講座が何を重視していて、何を重視していないのかをご理解いただけますと幸いです。
導入編は、浅いニューラルネットワークから深いニューラルネットワークまで、コアとなる考え方と実装方法の本質的理解を目指します。実践編は近日公開予定です。
Googleアカウントを持っている前提で、Google Colaboratory(Colab)でPythonコードを実行できるようになるまでの解説をします。
単純パーセプトロンの歴史・仕組みについて解説します。
身長・体重からBMIを基準にメタボ判定を行う処理をPython/Pytorchを使って実際に書いていきます。
※2020/11/21追記:
loss_fn(正解ラベル, 推論結果)のような誤記がありますが、
正しくは、loss_fn(推論結果, 正解ラベル)となります(引数が逆)。誤っていても学習は正しく行われますが、別の例では次元が合わずエラーになることがありますので、ご注意ください。
※2022/9/4追記:
以下、losses.append(loss) → losses.append(loss.item())へ修正しております。
修正後のipynbをダウンロードしてお試し頂けますと幸いです。
```
for epoch in range(epochs):
W.grad = None
y_pred = sigmoid(X@W)
loss = loss_fn(y_pred.view_as(y), y)
loss.backward()
W.data = W.data - eta * W.grad.data
losses.append(loss.item())
```
よろしくお願いいたします。
単純パーセプトロンの説明・実装を通して確認できた内容を振り返ります。
単純パーセプトロンの活性化関数を変更し、損失関数・微分と併用することで、勾配降下法による学習が可能であるということを、手計算をしながらやさしく解説します。
線形回帰とロジスティック回帰によるBMIの予測並びにメタボ判定を行うネットワークをPytorchライブラリを用いて実装していきます。
本講座での学習のステップは、深層学習の実装でも流用することが可能です。
単純パーセプトロンでは解くことができなかった線形分離不可能な問題を、多層パーセプトロンで解くことができるようになるというイメージを解説と実装を通して理解します。
単純パーセプトロンで解くことができる問題(AND/OR回路の近似)と多層パーセプトロンでしか解くことのできない問題(XOR回路の近似)を題材に実装によって、線形分離不可能な問題を多層パーセプトロンで解けるようになるまでを解説します。
※2020/11/21追記:
loss_fn(正解ラベル, 推論結果)のような誤記がありますが、
正しくは、loss_fn(推論結果, 正解ラベル)となります(引数が逆)。誤っていても学習は正しく行われますが、別の例では次元が合わずエラーになることがありますので、ご注意ください。
本講座では、Google Colaboratory(Colab)の環境を利用しながら実際に手を動かしてPytorchで単純パーセプトロン・多層パーセプトロンを実装し、ネットワークが自動学習できるように拡張していきます。ニューラルネットワークがどのような仕組みで訓練・推論を行っているのかの理解を深めることができます。
Pytorchの書籍や公式チュートリアルで挫折してしまった方が、もう一度深層学習にチャレンジしたいと思うきっかけになればと思い、極力平易な言葉での解説に徹しました。
※実践編にてCNN/RNN/BERTなどについても解説しておりますが、本講座には含まれませんのでご注意ください。
[目次]
01_直感!PythonPytorchで始める深層学習実装入門ハンズオン紹介
02_Colaboratory説明
03_Colaboratoryハンズオン
04_単純パーセプトロン説明
05_単純パーセプトロン実装
06_単純パーセプトロンサマリ
07_線形回帰、ロジスティック回帰、勾配降下法の説明
08_線形回帰、ロジスティック回帰、勾配降下法の実装
09_多層パーセプトロンの説明
10_多層パーセプトロンの実装
[前提知識]
・Pythonの基礎文法
・高校1年生レベルの数学の理解を前提