
ここ数年AIブームとなっており、続々とAIを活用したサービスが、続々と誕生しております。
例えば、AIスピーカーのAlexa、フリマアプリのメルカリでは、写真を撮るだけで、AIが自動で商品名や商品のブランドを判定し、出品を簡単にできる機能があります。今後もAIを活用したサービスは増加していきます。
そもそもAIって?

AI(Artificial Intelligence) 「人工知能」と聞くと皆さんはどのように感じるでしょうか?人工的な知能と聞くと「ドラえもんや鉄腕アトムのように機械が人間と同じ様に自ら考え、判断し、行動をする」ようなイメージを持つ方も多いのではないでしょうか?
残念ながら現在のAIは人間のような知能を持つことが出来ていないのが現状です。それでは、今のAIには何が出来て、何が出来ないのでしょうか?それについて知るためには、次の言葉を知る必要があります。
特化型AIと汎用型AI
特化型AIとは、特定の対象に対して特化した能力を持つAIの事です。例えば、画像を見て「犬」か「猫」かを判断するAIや音声を聞いて文章化するAIなどがこれに当たります。
汎用型AIとは、様々な事柄に対して自ら考える、判断し、行動を選択できるAIの事です。ドラえもんや鉄腕アトムも汎用人工知能の一つと言えます。
現在のAIはほとんど特化型AI
現在のAIは、ほとんどが特化型AIです。汎用型AIは、研究段階のAIであり、実現までには時間がかかると思われます。
AIと機械学習とディープラーニングの違いは?
ここからは、現在のAIの主流である流行りの機械学習やディープラーニングの説明を行っていきたいと思いますが、「AI」・「機械学習」・「ディープラーニング(深層学習)」の違いって説明できますか?

「AI」・「機械学習」・「ディープラーニング(深層学習)」の関係は、
「AI」⊃「機械学習」⊃「ディープラーニング(深層学習)」
となっており、「AI」の中に「機械学習」が存在し、「機械学習」の手法の一つに「ディープラーニング(深層学習)」が存在します。
AIとは、人工的に知能を再現しようとする取り組みや技術
機械学習とは、人間の学習の仕組みを機械に行わせる技術
ディープラーニングとは、機械学習の手法の一つで機械が自動的に特徴を抽出し、判断や予測などを行います。
また、その他の機械学習の手法としては、SVM(サポートベクターマシン)やGA(遺伝的アルゴリズム)、Q学習の手法などがあります。

ディープラーニングの学習の流れを知る
ここからは、ディープラーニングについて説明していきます。ディープラーニングの説明をする際、本来であれば、ニューラルネットワークや活性化関数などの説明を行うべきですが、複雑であり挫折する人も多い内容です。そこで今回は、ディープラーニングの学習と推論の流れを中心に説明していきます。(ここで解説するのは、ビジネスシーンで多く使われる教師有り学習の説明です。)
Step1 何を行うAIを作るかを決めよう
AIで何を行わせたいかを決めましょう。例えば、
- 画像に写っている対象が「犬」なのか「猫」なのかを決める。
- 前日までの株価から翌日の株価を予測する
- 喋りかけたら誰が話しかけたのか判定する。
などがあります。ポイントは「入力」と「出力」が何か?です。例えば、犬と猫を判断する場合は、「入力」は画像、「出力」は犬の確率と猫の確率です。

Step2 ディープラーニングの手法を決めよう
ディープラーニングには、様々な手法があります。DNN(ディープニューラルネットワーク)、CNN(畳み込みニューラルネットワーク)、RNN(再帰型ニューラルネットワーク)、LSTM(Long Short Term Memory)、GAN(Generative Adversarial Network)、オートエンコーダ、FCN(全層畳み込みネットワーク)など様々です。
一般的には、画像の分類を行うのであれば、CNNを使用することが多く、株価の予測など時系列データを扱うならば、RNNやLSTMを使用することが多いです。ただし、〇〇をやるなら必ずこれを使いなさいという決まりはありません。解きたい問題のデータに合わせて適切な手法を選ぶ必要があります。

Step3 学習用に前処理をしよう
データの中には、そのままの状態では学習に使えない状態のデータがほとんどです。学習のネットワークに合わせてデータを加工・修正しする必要があります。これを前処理と言います。
例えば、画像の分類の際は、学習するサイズを一定に揃える必要があります。

Step4 学習させよう
前処理した学習データを使ってAIのモデルを学習させよう!
教師あり学習は学習データと正解データをセットで学習させます。大量の学習データを何回も繰り返して学習させることで重みを調整し学習を行うことが出来ます。繰り返し数をエポックと言います。

Step5 推論を行おう
学習したモデルを使って推論をしよう。学習に使っていないデータを用いて、正しく学習できているか確認をしよう。

Step6 精度を向上させよう
Step5で学習した結果精度がイマイチであった場合は、精度を向上させる必要があります。基本的に初めから高い精度が出ることは稀です。精度向上は必須です。
精度向上の方法はいくつかあります。例えば以下のようなものがあります。
- 学習データを増やす。
- 学習データを拡張する。
- 学習のモデルを変える。
- DropOut層やBatch Normalization層を追加する。
終わりに
今回はAIについてとAIの学習・推論の流れを説明しました。次回は画像の分類を題材にソースコードも交えながらAIについて学んでいきます。