エンジニア

なんくるないさ

「このブログはアフィリエイト広告を利用しています」

python初心者がAI(深層学習、機械学習)を簡単に使う方法

最近のAIブームで、AIをしてみたい人ってのはたくさんいると思います。

しかし、書店で人工知能の本見た瞬間、、は?無理やろこんなん!!

ってなった人がいっぱいいると思います。

 

 

この記事を読むことで

最短で簡単にpytho初心者でもAIを実装する方法がわかります

 

 

理論をしっかり学んでから、、、とか理解してから、、、とか考えてる方はお帰りください。

たぶんそんなこと思って1からAIの本買って勉強してもよっぽどやる気がないと挫折します。その中の一人が僕です。。。

 

 

そんな僕がたった1,2か月で画像認識のCNNのモデルを使って動作認識webアプリを実装した方法について書きます。

 

最初に結論から言うと、、、NNCを使おう。

 

NNC:nerural network console 。ソニーが無償で提供している機械学習のためのツールです。

この2分の動画をみればだいたいのイメージがつかめます。

www.youtube.com

普通にツールをつかわずにtensorflow を使って学習させようとすると

 

import pandas as pd
from sklearn.model_selection import train_test_split 

import tensorflow as tf

# アヤメデータの読み込み
iris_data = pd.read_csv("iris.csv", encoding="utf-8")

# アヤメデータをラベルと入力データに分離する
y_labels = iris_data.loc[:,"Name"]
x_data = iris_data.loc[:,["SepalLength","SepalWidth","PetalLength","PetalWidth"]]

# ラベルデータをベクトルに直す
labels = {
'Iris-setosa': [1, 0, 0],
'Iris-versicolor': [0, 1, 0],
'Iris-virginica': [0, 0, 1]
}
y_nums = list(map(lambda v : labels[v] , y_labels))

# 学習用とテスト用に分離する
x_train, x_test, y_train, y_test = train_test_split(
x_data, y_nums, train_size=0.8)

# アヤメデータの入力値(4次元)と出力値(3次元)を入れる場所を定義
x = tf.placeholder(tf.float32, [None, 4])
y_ = tf.placeholder(tf.float32, [None, 3])

# 重みとバイアスのための変数を定義
w = tf.Variable(tf.zeros([4, 3])) # 重み
b = tf.Variable(tf.zeros([3])) # バイアス

# ソフトマックス回帰を定義
y = tf.nn.softmax(tf.matmul(x, w) + b)

# モデル訓練
cross_entropy = -tf.reduce_sum(y_ * tf.log(y))
optimizer = tf.train.AdamOptimizer(0.05)
train = optimizer.minimize(cross_entropy)

# 正解率
predict = tf.equal(tf.argmax(y, 1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(predict, tf.float32))

 

?????みたいな感じですよね?

しかし

ソニーのNNCを使えば。

 

学習用のデータは下のようなcsvファイル作るだけです

f:id:jump1268:20181129110324p:plain

 

そしてモデルそれぞれの入力サイズや出力サイズも半自動で勝手に決めてくれます。

こんな複雑なモデル構築もドラッグ&ドロップで(むしろチュートリアルの利用しただけだからドラッグ&ドロップすらしていない)できます。 

f:id:jump1268:20181129105847p:plain

これをプログラムで書くのは結構大変です。

 

 

 

 学習と評価も↓の三角ボタン押すだけです。

f:id:jump1268:20181129110014p:plain

 

 

多分これだけじゃ使い方わからんやんってなるんですけど、下の本みてチュートリアルすれば多分中学生でもできちゃいます。

ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

 

 

その後webアプリはこの下の本で勉強してできちゃいます。

すぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方

すぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方

 

 

 業務でAIを使ったサービスや趣味でやってみたいならぜひNNCを使うべきです。

 

 

おすすめは改訂版です

 

ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

ソニー開発のNeural Network Console入門【増補改訂・クラウド対応版】--数式なし、コーディングなしのディープラーニング

 

 

 

すぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方

すぐに使える! 業務で実践できる! Pythonによる AI・機械学習・深層学習アプリのつくり方

 

 

 


こういうサイトで一気に力をつけることがもお勧めだと思います。
<a href="https://px.a8.net/svt/ejp?a8mat=35PTKY+G994FM+3L4M+6N741" rel="nofollow">
<img border="0" width="300" height="250" alt="" src="https://www21.a8.net/svt/bgt?aid=191001346983&wid=001&eno=01&mid=s00000016735001116000&mc=1"></a>
<img border="0" width="1" height="1" src="https://www13.a8.net/0.gif?a8mat=35PTKY+G994FM+3L4M+6N741" alt="">