話題の機械学習(AI) 機械学習の入門知識を紹介
近年話題の機械学習(AI) 大人気言語pythonで機械学習を紹介
最近(執筆時2020年11月)はどこの会社でも「AIを使ったシステム」の開発に躍起になっていて,私のようなシステム開発者は毎日のように「〇〇社が新たなAIシステムを開発!」のようなネットニュースを目にすると思います。
代表例として医療業界で大腸がんをAIで即検知する仕組みを国立研究開発法人の科学技術振興機構が開発したようです。
カメラで見ながら瞬時に機械学習システム(AI)で検知し,医者によるヒューマンエラー確率を軽減できるようです。素晴らしい技術ですよね。
ただ,ここまで書きましたがそもそもAIって何でしょうか。おそらく多くの方がAIはすごい技術で,人間よりも優れた性能を発揮できるシステムくらいに思っていると思います(Alpha碁の影響ですかね)。
今回の記事ではそんなAIについて解説していこうと思います。
AIの定義とは
私は製造業の会社に所属していて,システム開発を担当していますが機械系の社員などに「AIってなに?」と聞かれる事が多いです。この質問をされると私も少し困るのですが,その理由は
AIには厳密な定義は存在しない
からです。一方で研究者や開発者たちの間の共通認識として「人間が普段行うような思考や判断を再現したコンピュータシステム」がAIの仮定義のようになっています。ただこれも抽象的な内容なので厳密な定義とは程遠いですよね。
AIの例だと,以下のような犬の画像を見せたとします。この画像を人間が見たら瞬時に「これは犬だ」と分かりますよね。少し犬に詳しい人ならば「これは犬。その中でもこの犬はコーギーだ」と犬種も当てる事ができるでしょう。
ではコンピュータシステムでこの画像に映っている動物を当ててみるとします。普通の画像処理で見る場合以下のような項目で判断していくと思います。
- 画像の中にリードがあるかどうか
- 耳の大きさ
- 体の模様
- 爪があるかどうか
- 舌を出しているかどうか
- 体型
- ひげの有無
このあたりの情報を詳しく確認していく必要がありますし,どの条件も犬の状態(体制や光の入り方)などで変わってしまいますよね。こういった情報から犬かどうか,さらには犬種を当てるのは通常のコンピュータシステムでは困難なのです。
一方でAIを使う事で,すでに人間と同等かそれ以上の認識レベルで判断できるシステムが開発されています。AIにはすさまじい力があることが分かりますよね。それこそ世界を変えられるような力があります。
ただAIにも色々な種類があり,できる事が限られている事がほとんどです。
AIの種類? 強いAIと弱いAI
AI自体の定義はあいまいなのですが,AIはさらに大きく2種類に分かれます。それが強いAIと弱いAIです。
「AIに強いなんてあるの?」と思う方が多いと思います。これも明確に定義されている訳ではありませんが以下のように分かれています。
強いAIとは
まず強いAIについて解説します。強いAIとはずばりいうと「人間のようにさまざまな事に対処できるAI」の事を指します。これだけ言われると意味が分かりませんよね。
例をあげるならば以下のような項目を全て実施できるようなAIが強いAIです。
- 明日の日経平均株価を予測できる
- 明日の天気を予測できる
- 画像の映っている動物を判断できる
- 将棋や囲碁ができる
- 日常会話ができる
こんな関連性のない機能を全て実現できる「人間のようなAI」が強いAIです。例えるならばターミネーターやドラえもんが該当します。SFの世界の話で例えたように,この強いAIは2020年11月段階ではまだ完成されていません。いつ頃できるのか,今から楽しみですね。
弱いAIとは
それでは反対に弱いAIとはなんでしょうか。弱いAIは一言でいうと「特定の領域でのみ人間と同等かそれ以上の判断を行うAI」になります。つまり1つの事に特化した特化型AIが弱いAIという事になります。
特化型と聞くとむしろ強そうに聞こえますが1つの事しかできないというのは弱いという判断になるのがAI業界のようです。
これは先ほどあげた例(明日の天気予報や将棋ができるなど)のうち,1つだけ出来るAIになります。そのためかの有名なAlpha碁は弱いAIに分類されます。ただ弱いといっても性能が低い訳ではなく,事実中国のプロと対戦する際,99%の人がAlpha碁が勝つと予想しています。
AIを構築するための機械学習とは
強いAIや弱いAIなどに分類される事は分かってもらえたと思いますが,肝心のAIを構築する方法はなんでしょうか。
当然弱いAIの構築になりますが,機械学習(machine learning)という手法を使ってAIを作ります。
機械学習は総じて多くのデータを学習させてそのデータの傾向や新規データに対する予測を行う事ができます。ただ機械学習にも多くの種類があり,なにかを予測するAIを作る場合は 教師あり学習を,入力データ自体に関する特徴や法則を見つける場合は教師なし学習を行う事になります。
教師あり学習
教師あり学習とはあるデータAが与えられたときにデータAと関連のあるデータBはどういう値になるかを予測するようなAIを作るための機械学習手法です。画像処理で例をあげると動物の画像を大量に学習させ,学習させていない動物画像から何の動物が映っているか予測させます。
この画像は少しイメージと違うかも知れませんが色々な動物の画像を学習して何の動物の画像が来ても動物の種類をあてられるようなAIを作ることができます。
当然AIの予測精度をあげるためには学習データを調整するなどの準備が重要です。
教師なし学習
教師なし学習と聞くとまったくデータを与えられない学習方法なのかと思うかもしれませんがばっちりデータを学習します。
教師なし学習では入力データと答えのペアではなく,入力データのみをコンピュータに与えます。答えのデータがないのにどうやって学習するのかというと,入力データを分析し入力データの中で関連性や法則を持っていないかを分析します。
例をあげると下の動物の画像を学習させた場合,教師なし学習の場合「なんとなく左下と右下の画像が似ているな・・・」と猫を他の動物から分類することができたりします。
機械学習のまとめ AIについて
今回は本当に触りの部分だけですがAIと機械学習について解説させていただきました。
今回の記事を読んで頂き以下の内容だけでも把握頂けると幸いです。
- AIには厳密な定義は存在しない
- 強いAIと弱いAIが存在し,現在実装できるのは弱いAI(特化型AI)のみ
- 機械学習には教師あり学習と教師なし学習が存在する
- 教師あり学習は多くのデータを学習して,予測を行ったりする
- 教師なし学習は学習データの分類などを行う
今後も機械学習についての記事を投稿していこうと思うので是非見ていってください。