人工知能(AI)とは?
今回の記事では人工知能とは?機械学習とは?といった基本的な知識を我々の中で共有しておきましょう。
1.人工知能とは
最初に「人工知能」という言葉の定義を先に済ませておきます。
人工知能とは…
「人間と同等の知能を再現しようとする取り組みや技術の総称」としましょう。
なぜ「〜としましょう。」と表現したのかというと、人工知能の専門家ですら人によって人工知能という技術に対しての定義がバラバラだからです。なので、このブログをご覧のみなさんも上記の言葉は私が用いた一つの表現にすぎないということはお忘れなく。
ただ「技術の総称」としたように、現代では人工知能という言葉が広義で使われていることに違いありません。
一般にイメージする人工知能はスマートフォンに搭載されているOK GoogleやSiriのような複雑な処理(しかも中身でどんな処理をしているのか想像し難い)をしているものをイメージしますが、人工知能(AI)という言葉が使われている製品やシステムはもっと単純なものが多かったりします。
例えばゲームの中に登場する誰も操作していないキャラクターのことをゲームAIといったりします。まるで人間が操作しているかのように敵や味方のキャラクターが動いたりしますから、「人工知能」の定義にはしっかり当てはまります。
しかし、内部の仕組みとしては条件分岐式を重ね合わせたプログラムが多く、ましてやこれらが勝利を目指して学習するなどありません。(ゲームクリアがほぼできなくなるでしょう。。。)
ちなみに人工知能が話題になったのはつい最近の話ではありません。1950年ごろに世界初のコンピュータが製造されるようになってすぐに話題となりました。チェスやチェッカーなどの対戦ゲームを一人でも楽しめるようにコンピュータに相手させるような取り組みがすでにされていました。
コンピュータを作るハードウェアの性能向上や大量のデータにアクセスできるようになったこと、数学の応用によって人工知能はその都度研究者の中でホットな話題となっていました。そして2度の冬の時代を乗り越え、現代では皆さんに注目されるまで発展してきました。
次項から解説する機械学習、深層学習といった技術はこの人工知能という技術に内包されているイメージを持っていただければ分かりやすいと思います。
2.機械学習とは
前項で機械学習は人工知能という概念に内包されていると述べました。
では、具体的にどのようなものが「機械学習」とカテゴライズされているのかも定義してしまいます。
機械学習とは…
「多量のデータから特徴や判断基準を発見・更新し、それをもとに物事を処理する技術」です。
データの特徴や判断基準などの言葉は下記の具体例を読み進めてもらえるとわかると思いますから少し話を進めます。
そして、機械学習は大きく分けて3つの学習方法が存在します。
教師あり学習
では、実際に教師データを用いた機械学習ではどのような作業が行われているのか見ていこうと思います。
そのために具体例として画像から花が写っているかどうか判断するプログラムをイメージしてみましょう。
我々は左側の画像から「花だけに印をつけなさい」と言われればすぐにそれを達成することができます。しかし、この作業を機械にやらせるためには厳格な判断基準が必要でしょう。
例えば「花びらがついている」ことや「色がピンクや黄色」であることが分かれば良いでしょうか。
このような花の特徴や花と判断するための基準を人が定め、全て明示的に(わざわざ手作業でみたいな意味)プログラムしたものは機械学習とは呼びません。
機械学習の醍醐味は今まで明示的にプログラムしてきた特徴や判断基準を大量の教師データを参考にすることで機械が自ら見つけ出すところにあるのです。
いわゆる「学習」と呼ばれるものですね。
説明が遅れましたが、ここで出てきた「教師データ」とは問題と正解が1つになったデータセットのことです。今回の例では画像データとその画像に花が写っているかどうかのデータ。これらが1つになったものです。
正解と不正解のパターンを数学的に分析しながら判断基準を形成するわけです。
判断基準を持ったコンピュータは画像データが入力に与えられると、そこに花が写っているか判断することができるようになります。
教師なし学習
次に教師データなしの学習について学びます。
教師なし学習の多くはクラスタリング(データの分類問題)の場合が多いので、具体例もそのように変えてみましょう。
では、大量の画像データを用意してやります。
今回は被写体に統一性がなくても良く、何が写り込んでいるかの情報も必要ありません。
この大量のデータ中で似ている性質、特徴を持つものをグルーピングしてやります。あらかじめどのような特徴を基準に分類してやれば良いかは人間の方で定めるか、または画像に信号処理を行うことで特徴抽出し判断します。
教師あり学習に比べシステム構築に要求される数学・物理のレベルが高いので、スタートでつまずきやすいかもしれません。しかし、システムが完成した後は教師あり学習に比べアップグレードに用いるデータの選定や加工が面倒ではないので音声認識・画像認識で使われることが多い印象です。
強化学習
最後に強化学習です。私も強化学習に関しては現在(2019/02/05)、実装経験がありませんので、知識だけのご紹介になります。
ここでは近年話題になっている自動運転車にしましょう。
車が自動で道路走行するためのアルゴリズム(走り方)を考えます。
その時にどんな走り方をするのがベストなのかという問題をポイント制にしてしまいます。より短時間で簡単な経路を通り目的地へたどり着いた場合は、より高い点数を与えます。逆に事故が起こっては現実世界で使うことができないので減点してやります。
こうして走り方に対して与えられた点数を比較して、より点数が高い走り方を突き詰めていきます。
以上3つの学習法について簡単に解説してきました。
どの学習法を用いるかはみなさんが実装したいシステムによって使い分ける必要があります。
また、どのアイディアも数学的な情報処理の理論が基盤にあります。
AIや機械学習に疎い方からは得体のしれない魔法のような技術と思われがちですが、数値的な論拠を立派に示すことができる学問分野だということを理解していただきたいです。
まとめ
- 人工知能とは機械学習、深層学習を含めた広義の言葉である。
- 機械学習とは「多量のデータから特徴や判断基準を発見・更新し、それをもとに物事を処理する技術」
- 機械学習の進め方は3種類で、データセットや解決したい問題によって使い分ける。
- どの学習法も数学の知識が必要となってくる。
※本記事は1度大きく内容を変更しました。
内容変更前の記事は読むことができなくなっています。
(私の研究の内容などがバッサリなくなっているので、初学者の方達にとって読みやすくなっていると思います。)