基礎から始める人工知能と機械学習|最も簡単なAND演算のAIプログラミングを学習



もっとも簡単な機械学習で人工知能開発の雰囲気をつかむ

AND演算の機械学習プログラムを学習

機械学習の最初の一歩は、論理演算【AND】の動作を学習します。これによって、【scikit-learn(サイキットラーン)】の使用も理解できるようになります。

AND演算

2つの入力、A・Bに対し、例えば次のような結果を計算する演算処理のことです。

  • A・B両方とも真(1)の場合は、結果が真(1)
  • 上記以外の場合は、偽(0)

これを全てのパターンで表すと以下の表になります。

B結果
0 0 0
1 0 0
0 1 0
1 1 1

このデータパターンをAND演算で機械学習させます。

機械学習プログラムの完成を設定する

次に、どのような機械学習プログラムを作成するか?その完成状態を決めます。
これを決めないと何時までもプログラムを延々と修正して、終わりが見えなくなります。そうならない様に最初は、プログラムの完成状態を明確にするのが良いです。

ここでは、

  • 入力データ(A・B)と、結果(上記の表)を全パターン学習させる。
  • 学習後に、正しい結果を判断できるか?を評価する。

このプログラムの場合は、普通の言語でも実装は可能ですが、機械学習の雰囲気を知るために、機械学習プログラムで実装します。

アルゴリズムの選択を行う

完成を設定した後は、アルゴリズムチートシートを元にして機械学習のアルゴリズムを選択します。
このアルゴリズムチートシートは、機械学習のタイプや学習データの量などの条件をたどって行く事で、最適なアルゴリズムを教えてくれます。
特に機械学習を始めたばかりの方が、アルゴリズムの選択を行う為にはアルゴリズムチートシートは必須です。

一番簡単な機械学習AND演算の機械学習

実際に、アルゴリズムの選択を行います。
【Start】➡【50(学習データは50件よりも多い?)】➡
【NO(少ない)】➡【get more data(より多くのデータを用意する)】で、
終わってしまうため今回は、この「>50」の部分を無視して進めます。

【predicting a category(カテゴリーを予測する)】➡
【YES】➡【do you have labeled data(ラベル付きデータはありますか)】➡
【YES】➡【100K(学習データは10万件よりも少ない?)】➡
【YES(少ない)】➡【LinearSVC】
(終了)

これで、「LinearSVC」と言うアルゴリズムが選択されました。

AND演算の機械学習プログラムを実装

※ソースのサンプルは、記事最後にもあります。

一番簡単な機械学習AND演算の機械学習

【プログラム説明】

1.ライブラリのインポート
プログラムで使用するパッケージのインポートを行う。
・sklearn.svm.LinearSVC:LinearSVCアルゴリズムを使用するパッケージ
・sklearn.metrics.accuracy_score:実行結果を評価するパッケージ

2.学習用データの準備
LinierSVCアルゴリズムは、「教師あり学習」のアルゴリズムの為、学習用データを設定する。

3.予測結果の準備
2.同様に予測結果も設定する。

4.アルゴリズムの指定(LinierSVC)
使用するアルゴリズムのオブジェクトを生成する。
アルゴリズムは、上記で選択した「LinearSVC()」を使用する。

5.学習用データ、予測結果から学習を行わせる
アルゴリズムオブジェクトのfit()関数は、データを読ませて学習を行わせる関数です。
“2.学習用データの準備”と”3.予測結果の準備”で設定したデータを学習させる。

6.テストデータの準備
学習した結果を判断するための予測データを設定する。

7.テストデータから結果を予測させる
アルゴリズムオブジェクトのpredict()関数は、予測データを読ませて、学習した結果を予測させる関数です。
“6.テストデータの準備”で設定したデータで学習結果を予測させる。

8.予測結果の評価を行う
学習結果と正解率の表示を行います。
正解率の算出には、インストールしたパッケージ「sklearn.metrics.accuracy_score」のaccuracy_score()関数を使用します。

テストデータ: ”6.テストデータの準備”で設定したデータ内容を表示
予測結果  : ”7.テストデータから結果を予測させる”で学習結果を予測したデータを表示
正解率   : ”1.0″は、100%の成果率を表しています。

AND演算の機械学習プログラムの結果

AND演算の機械学習が「LinearSVC()」アルゴリズムで行えることが出来ました。
非常にシンプルなプログラムですが、AND演算の機械学習を実感できたと思います。

AND演算の機械学習プログラムのサンプルソース

#1 ライブラリのインポート
from sklearn.svm import LinearSVC
from sklearn.metrics import accuracy_score

#2 学習用データの準備
Linear_Data = [[0,0], [1,0], [0,1], [1,1]]

#3 予測結果の準備
Linear_Result = [0, 0, 0, 1]

#4 アルゴリズムの指定(LinearSVC)
Controll = LinearSVC()#5 学習用データ、予測結果から学習を行わせる
Controll.fit(Linear_Data, Linear_Result)

#6 テストデータの準備
Test_Data = [[1,1],[0,0],[1,0], [0,1]]

#7 テストデータから結果を予測させる
Test_Result = Controll.predict(Test_Data)

#8 予測結果の評価を行う
print(“テストデータ:” , Test_Data )
print(“予測結果  :” , Test_Result)
print(“正解率   :” , accuracy_score([1, 0, 0, 0], Test_Result))



1 個のコメント

  • コメントを残す

    メールアドレスが公開されることはありません。 * が付いている欄は必須項目です