ぴよ猫ちゃんの機械学習

AI、人工知能、機械学習について色々記事にしています。

ゼロから始めるAI入門 ~分類と回帰およびCNNとRNN~

こんにちはー。管理人のピヨ猫でーす。

疑問

最近AIという言葉を良く耳にするけどAIって何が出来るの?人間みたいに考えたりできるのかな?

f:id:shibayu2002:20190310112521j:plain

AIにも色々あって最近ビジネスシーンで良く話題になるAIは特化型のAIというもので、主に分類と回帰を行うことが出来るんだ。 分類と回帰を応用すると画像認識や音声認識といったことが出来るんだけど、今回はその基礎となる分類と回帰が何かを説明するね。

1.AIは何が出来るのか?

AIとは何か?

AIに何が出来るかの前に、まずAIとは何か?を説明します。

AIはArtificial Intelligenceの頭文字をとったもので、日本語に訳すと人工知能となり、推論、認識、判断など人間と同じ知的な処理能力を持つ機械(情報処理システム)のことを指します。
AIは感情の有無や汎用性などから大きく4種類に分類されますが、現在の主流は「特化型の弱いAI」に分類されるもので、感情はありませんし何でもできるというものではなく、画像認識などの機能に特化したものになります。

詳しくは以下の記事を参照してください。↓↓↓
syuuai.hatenablog.com

AIは何が出来るのか?

AIは何が出来るか?

AIは画像認識や音声認識を人間以上の精度で行うことが出来、その能力を生かして不良品の検知や文書作成支援などの幅広い分野で使われています。
最も身近なところではスマホのカメラの顔認識機能もAIです。
しかし、そんなAIですが基本的にできることは分類と回帰の2つになります。 画像認識や音声認識などは分類と回帰のいずれかの機能を用いて実現されています。

(参考)AIのビジネスシーンへの活用事例

  • 河川のコンクリート護岸劣化検知
  • 食品メーカーの需要予測と生産工場振分けの最適化
  • バレーボールのリアルタイム分析への機械学習の活用
  • AI(機械学習)による宣伝効果予測モデルの構築
  • 類似文書からのキーワード抽出による文書作成支援機能の開発支援
  • SNS投稿画像による商品利用実態の解析

【参考サイト】
ai.brainpad.co.jp

(参考)AIの機能

上に記載したAIの基本機能は、大手ITベンダーが提供する機械学習APIの機能となります。詳しい機能については以下のサイトを参照ください。

参考サイト)
www.ibm.com cloud.google.com aws.amazon.com

2.分類と回帰

① 分類

分類とは何か?

分類とはその名の通り「分けること」です。
例えば年齢で学校のクラスを分けたり、成績で大学の合否を分けたりすることが分類です。

<分類>
分類

分類は全ての基礎となる機能

例え話をします。
例えば、電話が鳴ったら電話番号を見て知っている番号か確認して、電話に出るか決めると思います。(出ないという選択はあまりないと思いますが・・・)
ここでやっていることをもう一度見てみましょう。

  • ①電話が鳴ったとわかる → 電話番号を見る
  • ②知っている番号か見わける → 電話に出る or 出ない

最初に行っていることはどちらも「分ける」ことです。

  • ①電話がなっている状態、なっていない状態を分ける
  • ②知っている番号か知らない番号か分ける

物事を行う際には基本的には最初に分けるという作業が必要になります。分けなければ判断が出来ず何をして良いかが分からないからです。
現在のAIはこの分けるという物事を行うために必須の作業を行うことが出来ます。
また、場合によっては人間以上の精度で分類を行うことが出来、人間の判断を大きく助けてくれています。
例えば、カメラの顔認識はAIが人の顔かどうかを瞬時に分類しています。昔は人間が人の顔を見分けてピントを調整していましたが、今は、AIが人の顔を見分けられるのでピント調整を自動に行うことが出来るのです。

なお、現在においては、分けた結果に応じて何をするかについてはAIが自分で判断をしているのではなく人が予めプログラムして決めています。

② 回帰

回帰とは何か?

回帰は過去の連続するデータから将来のデータを予想することです。
線形回帰とか多項式回帰という言葉を聞いたことがあると思います。線形回帰や多項式回帰はAIが出来る以前からある手法で、過去のデータの分布に近似する方程式を計算で導き出すことです。計算式を導き出すと過去のデータ分布に無い将来のデータ分布を計算式から算出来ます。

<線形回帰>
分類

AIの回帰もやることは同じです。過去データから将来値を予想します。 今までの手法と違うのはAIは計算式を求めていません。

回帰も全ての基礎となる機能

また例え話をします。
例えば、野球でボールを打つ時にどうやってボールを打っていますか?
ボールの軌道を予想してバットを振っていると思います。
ではどうやって予想しているかと言うと、ボールの動きつまり過去の連続するデータの流れから将来の動きを予想していると思います。
実は人間は色々なことに対して予想をして行動をしています。
予想も行動を決定する際の最初に行うことで、AIはこの予想(回帰)についても行うことが出来ます。

AIは突き詰めるとY = f(X) を行うこと

若干蛇足ですが、分類と回帰は数学的にはどちらもY = f(X)という式で表せ、根本的には同じことです。

wikiで回帰分析を調べると以下の様に記載されています。


回帰とは、統計学においてY が連続値の時にデータに Y = f(X) というモデル(「定量的な関係の構造)を当てはめる事。
別の言い方では、連続尺度の従属変数(目的変数)Y と独立変数(説明変数)X の間にモデルを当てはめること。
Yが離散の場合は分類と言う。 ja.wikipedia.org


つまり、AIは突き詰めれば、Y = f(X) のf()にあたるものです。入力データXを渡すと適切な出力データYを返します。

3.CNNとRNN

CNN、RNNとは

CNNとRNNは分類と回帰を実現するためのAIの基本構造です。
AIの学習の仕組みを実現する方法として人間の脳の仕組みを模したニューラルネットワークが用いられ、ニューラルネットワークを複数用いて学習をする仕組みをディープラーニングといいます。 CNN、RNNはディープラーニングの基本構造で、

になります。

CNNとRNNを詳しく説明すると長くなるので、今回は機械学習の分類を実現する仕組みにCNNがあり、回帰を実現する仕組みにRNNがあるとだけ抑えておいてください。

注)CNN=分類、RNN=回帰ではありません。分類を行う際に良く使われるのがCNN、回帰を行うのに良く使われるのがRNNですが、どちらでも分類も回帰も行うことが出来ます。

Neural Network Consoleを使ったCNNの実装

ディープラーニングの実装はTensorFlowやKerasを使うのがデファクトスタンダードになりつつありますが、今回はSonyさんのNeural Network ConsoleでCNNを紹介します。Neural Network Consoleは視覚的にとても見やすいのと、機械学習分野でも日本企業に是非がんばって貰いたいので、今回はSonyさんのNeural Network Consoleを使います。

【CNNの構造例】
CNN
畳み込み層を通して、ニューラルネット(分類機)にデータを渡しています。 なのでCNNと呼ばれます。

4.分類や回帰の色々なやり方

今回は最も基本となるCNNとRNNを紹介しましたが、分類や回帰のやり方は実は沢山あります。
詳しくは以下の記事に纏めましたので良ければ参照してください。↓↓↓

分類や回帰の色々なやり方

syuuai.hatenablog.com

最も分類で使われるResNetの具体的なやり方

syuuai.hatenablog.com

最も回帰で使われるLSTMの具体的なやり方

syuuai.hatenablog.com syuuai.hatenablog.com

それでは、少しでもこの記事がお役にたったら嬉しいです。 うれしい