s1s2図3.12:排他的論理和を出力するニューラルネットワークの例x2y10x深層学習は、2012年にカナダのヒントン教授らのチームが、画像認識のコンテストで圧勝したことを契機にして広く利用されるようになりました。Google社のグループは、多数の猫の画像データを学習させることにより、猫の画像を見せると「ネコ」と答えてくれるニューラルネットワークを作成しました。ゴッホやミュシャなどの画風を学習させることにより、図3.13のように画風を変換することもできます。http://yann.lecun.com/exdb/mnist/Scikit-learn を用いたプログラム例を図3.15に示します。データの80%を訓練用、20%をテスト用に分割して学習して図3.14:手書き文字データMNISTの例図3.15:多層ニューラルネットを用いたMNISTの学習プログラムと学習結果の検証例。図3.13:ニューラルネットワークを用いた画風変換。左:原図、右:ミュシャ風https://tech.preferred.jp/ja/blog/chainer-gogh/います。最後に正答率が表示されます。ディープラーニングは画像認識に広く活用されており、入国審査の際の顔認識にも利用されています。車の自動運転やロボットなどにも利用されつつあります。入力層1x中間層-0.7-0.50.50.20.50.70.5出力層y29多層ニューラルネットワークの動作図3.12のように重みとθを設定すると、入力 (x1,x2) が (0,0),(1,1) のとき、y には 0 、(0,1),(1,0) のときに 1 が出力されます。これは y=x1⊕x2という演算に相当します。ここで ⊕ は排他的論理和をあらわし、0⊕0=0、0⊕1=1, 1⊕0=1、1⊕1=0 です。3層ニューラルネットワークによってy=f(x1,x2)=x1⊕x2という排他的論理和を出力する関数が構成できたことになります。深層学習(ディープラーニング)ニューロン間の結合の強さ(重みw)と、閾値θを調節することにより、このニューラルネットワークが入力に対して適切な値を出力するように教育することができます。多層ニューラルネットワークを用いた、このような学習のことを深層学習(ディープラーニング)と言います。ディープラーニングの活用事例手書き文字を認識するニューラルネットワークの学習に用いられるデータの例を図3.14に示します。MNISTは訓練用データ6万枚、テストデータ1万枚の8ビットグレースケールデータで、1文字784ピクセルで表現されています。以下の公式ページからダウンロードすることができます。-0.50.5import numpy as npfrom sklearn import datasetsfrom sklearn.neural_network import MLPClassifierfrom sklearn.model_selection import train_test_splitfrom sklearn.metrics import accuracy_scoremnist = datasets.load_digits()x_train, x_test, y_train, y_test = train_test_split( mnist.data, mnist.target, test_size=0.2)mlp = MLPClassifier(hidden_layer_sizes=(100, ), max_iter=250,solver='adam', tol=0.0001)mlp.fit(x_train, y_train)y_pred=mlp.predict(x_test)print('accuracy = %.2f'% accuracy_score(y_test,y_pred))実行結果accuracy = 0.98
元のページ ../index.html#29