機械学習とは?機械学習入門①

2019-10-20 / 統計学ITビジネス

- 機械学習とは何なのか?AIとかディープラーニングが実現できることと、できないことを解説!

記事の要約

  • 機械学習やディープラーニングは、万能ではなく、1つのあるタスクをこなすために最適な方法を見つけ出すための機械
  • あくまでも、「すでにあるデータ」を分析し、将来を予測することであったり、「一定のルールに基づいて」最適な行動をとることしかできない
  • 1つのタスクに機械学習AIが1つであり、複数の機械学習AIを組み合わせて1つのアプリケーションなどを構成する
  • 機械学習AIを作るには、まずはPythonでプロトタイプを開発し、C・C++などで、高速化する

AI神話

みなさん、こんにちは。 機械学習や、深層学習、ディープラーニング、AIなどという言葉を、今聞いたことがない人はいないと思います。ですが、実際に理論知っているわけではなかったり、開発をしたことがない人は、何ができるのかよくわからない、AIが人間を超えるのでは!?といったような疑問を抱く人も中にはいると思います。

しかし、実際にはそのようなことは一切なく、AIはシンプルなある1つのタスクをこなす能力が非常に高い機械でしかありません。

この記事では、実際に何ができるのか、できないのか、どのような未来が実現できるのか、などを統計の専門家の視点からわかりやすく解説していきたいと思います。

機械学習・ディープラーニングとは?

さて、そもそも機械学習とは一体何でしょうか。機械学習とは、コンピュータがデータを元に、統計理論に基づいて推定を行い、新たに読み込むデータに対して、学習した結果を用いて結論を推定する一連のアルゴリズムのことを指します。

この機械学習というものの中に、人間の脳内の電気信号のやり取りの形を模した、ニューラルネットという学習手法があります。そのニューラルネットの手法を改良して、今もてはやされているAIの手法として確率されたのが、ディープラーニング(深層学習)です。

ですので、「機械学習」という言葉だけで言うと、実際にはディープラーニング以外も含みます。代表的なのは、分類分けを行う「クラスター分析」などがあります。

機械学習ができること・できやすいこと

機械学習が万能で、AIに人間が支配されるようになるかというと、全くそのようなレベルにはまだ達していません。あくまでも、「すでにあるデータ」を分析し、将来を予測することであったり、「一定のルールに基づいて」最適な行動をとること、などが得意です。

  • よく使われている機械学習の例:
  • 画像から何が写っているかを判定
  • 文章からどのような内容であるかをカテゴライズ
  • イラストに自動で色を塗る
  • 文章自動生成
  • 囲碁や将棋などの最適な一手を選択

また、機械学習の学習モデルは、複数のタスクを一度にこなすことはできません。(1つの機械学習で、画像から何が写っているのかを判定し、かつ、そこに色を塗っていく、など) 一つ一つのタスク毎に、機械学習モデルを生成し、それらを組み合わせて一連の処理の流れを作成することが基本です。

機械学習の3つの分類

機械学習には、3つの学習手法があります。

  1. 教師あり学習(Supervised Learning)

    • 答えが付随している学習データを元にして、学習する機械学習モデル
  2. 教師なし学習(Unsupervised Learning)

    • 答えが付随していない学習データを元にして、学習する機械学習モデル
  3. 強化学習(Reinforcement Learning)

    • 一定のルールの中で、試行錯誤を行って学習する機械学習モデル

機械学習を開発するプロセス

機械学習アプリケーションを開発する基本的なステップは以下のとおりです。

  1. 実現したいモノの決定 :犬の種類判定アプリ
  2. 集めるデータの決定 :大量の犬の画像・動画データ
  3. 学習方法の決定 :教師あり学習
  4. 機械学習アルゴリズムの実装 :Python・Tensorflow、Keras
  5. データの収集および、学習
  6. 新規データによる検証 :クロスバリデーション(交差検証)
  7. 機械学習アルゴリズムの改良 :論文のアルゴリズムをパクるarXivTimes (@arxivtimes) / Twitter
    • 以下、5以下を繰り返す

Pythonによる機械学習

Python(3系)では、Googleが2015年に開発・リリースしたTensorflowを始め、便利な機械学習ライブラリが揃っています。これらのライブラリに頼りすぎて、中身の実装を理解できていないことは問題ですが、理解した上で使えば、非常に便利で高速に機械学習アプリケーションを開発することができます。

便利な機械学習ライブラリ

  • TensorFlow(ディープラーニング)
  • scikit-learn(機械学習の全てのジャンル)
  • Edward(確率的プログラミング)
  • keras(ディープラーニング抽象化・簡素化)

Numpy ・ Pandas

Pythonで機械学習の実装には、Numpyおよび、Pandasを扱うことが必要不可欠となります。また、これらのライブラリは非常に便利ですので、是非ともマスターして機械学習エンジニアとしての第一歩を踏み出してみてください!

この記事の関連記事

関連記事はありません。

コメント欄

記事にコメントする

まだコメントはありません。