ディープラーニング入門
カテゴリ:Pythonの話
こんにちは!今回はpythonによる機械学習には欠かせない
ディープラーニングについて紹介していきたいと思います!
1.ディープラーニングとは
ディープラーニングとは、人工知能の根幹をなす技術のことで十分なデータ量があれば、機械が自動的にデータから特徴を抽出してくれるディープニュートラルネットワーク(DNN)を用いた学習のことです。
2.ディープラーニングができること
- 画像認識
- 音声処理
- 自然言語処理
などがあります。逆にできないこととしては十分なデータ量がないような事例や人間にしかできない道徳的な活動です。
3.ディープラーニングの実装
実装をする上で今回は、「スタビジ 【入門】ディープラーニングとは?仕組みとPythonでの実装を見ていこう!」(https://toukei-lab.com/deep-learning#i-2 )こちらの記事を参考にさせていただきます。今回はKerasを使ったディープラーニングを使用して画像認識問題を解いていきます。
まずは、必要なライブラリをインストールしておきます。
このときに「sklearn」をインストールしておくのを忘れたため、エラーが出てきたので「pip install -U scikit-learn」でインストールしておきました。
次に、mnistのデータを学習データとテストデータに分けます。
※以下のようなソースコードになります。
1 2 3 4 5 |
np.random.seed(0) (X_train_base, labels_train_base), (X_test, labels_test) = mnist.load_data() # Training set を学習データ(X_train, labels_train)と検証データ(X_validation, labels_validation)に8:2で分割する X_train,X_validation,labels_train,labels_validation = train_test_split(X_train_base,labels_train_base,test_size = 0.2) |
そして、画像データを学習するために1×784に直し、さらに0~255のスケールを正規化します。
続いて、ラベルをダミー変数化します。
次は、ネットワーク構築です。
隠れ層では、RELU関数を用いて出力層ではソフトマックス関数を用いています。
続いて、最適化手法であるAdamOptimizerを使います。
「Early stopping」・・・学習時に何らかの指標を監視して、学習を終了させるテクニック
最後に、テストデータで予測を実行して実測値と予測値の正解率を求めます。結果は、97.010%でした。
4.さいごに
今回はディープラーニングをPythonで実装してみましたが、今回だけでなくライブラリのインストールがされていないことによるエラーが何回かありました。(笑)必要なライブラリのインストールはあらかじめしておくと実装するスピードが上がると思いました。