inglow Blog

Tech Blog
エンジニアブログ

初心者のための人工知能(AI)の基礎知識

2020.06.25

このエントリーをはてなブックマークに追加

人工知能(AI)とは何か

最近では、あらゆる場所で人工知能という言葉を耳にしますが、人工知能について皆さんは基本的はことを知っていますか?その正式な定義は決められていませんが、使う人や場合によって使い分けられていて、簡単に説明するならば、『人のように知的な情報処理を実現することができるプログラム』です。

人工知能は英語でArtificial Intelligence であり、略して『AI』として広く認知されています。

一般的なプログラムは、作成者の意図通りに動作しますが、人工知能では、想定していなかったあらゆる場面に適応したり、時に自律的に動くものを一般的に指します。

身近な人工知能の例として、ソフトバンクのPepperや、AppleのSiriが挙げられます!

人工知能のレベルについて

人工知能は大きく四つのレベルに分かれていると言われています。現在では主に、レベル3、レベル4のことを人工知能と呼ぶこともあります。

レベル1 単純な制御プログラム

従来は制御工学やシステム工学という名称で表されたもので、マーケティングの観点から、メーカーがAIとしている製品はこの範疇に入ります。

具体的には、マイコン制御のエアコンや洗濯機などがあります。(マイコン:マイクロコンピュータ または マイクロコントローラーの略で小さな基板にコンピュータとしての機能を一通り持つもの)

レベル2 古典的なAI

多数のパターンに対応することができるシステムのことを指します。具体的な例を挙げると、性格診断などのシステムがあります。また、ルンバに代表される自動お掃除ロボなどのコンピュータシステムなどもここに含まれます。

レベル3 機械学習を取り入れたAI

このレベルは事前に学習した対応パターン、特徴量を使用することで、新しい入力を出力とを自動的に結び付けて学習していくものを指します。

ただし、その特徴量は人間によって与えられたものであり、与えられた特徴量に基づいて入力と出力との関係を表現します。

具体的には、検索エンジンや、ビッグデータ分析に用いられています。

レベル4 ディープラーニングを取り入れたAI

プログラム自体が大量のデータのインプットと特徴量抽出を繰り返すことで、レベル3のAIでは、人間が全て設定する必要があった特徴量さえも学習を行います。

具体的な例として、高度な医療診断システムや、画像認識などの技術があります。

強いAIと弱いAI

また、AIは『強いAI』と『弱いAI』と区別され、『強いAI』は人間の様に幅広い知識と、何らかの自意識を持つ様になったコンピュータのことで、『弱いAI』とは知能がある様に見えるコンピュータのことを表します。

知能がある様に見えるとは、コンピュータは人の使う言葉などを人と同じ様に意味を理解して処理しているわけではないのですが、コンピュータのアウトプットがまるで人間がした様に感じられる状態を表します。

この定義に従うと、現在主流なのは弱いAIで、何かに特化した人間のお助けをする道具的な役割を担っているに過ぎません。人間の不得意な部分の補佐や、能力を拡張するために使われています。

人間に変わって様々な用途で成果を出すことができる汎用性を持つAIや、自我を持つ強いAIはまだ現れてなく、現在も学習データが少ない領域でも対応ができる能力を持つAIの実現を目指して汎用人工知能(AGI)の研究が進められています。

機械学習とは

AIのキーワードとして機械学習があると思います。

機械学習とは、コンピュータに学習能力を持たせるための方法論とその技術のことです。サンプルになるデータを基に、コンピュータに知識やルールを学ばせるもので、人間の書く固定的なプログラムでは解決することができない難しいタスクをこなすことができます。

人間による明示的な指示を用いることなく、その代わりにパターンと推論に依存して、課題を効率的に実行するためにコンピュータシステムが使用するアルゴリズムおよび統計モデルの科学研究です。

ディープラーニング

ディープラーニングも機械学習と合わせてよく耳にするワードですが、これは機械学習の一種の手法であり、データの中に存在しているパターンやルールの発見、特徴量の設定、学習なども機械が自動的に行うことが特徴です。人間が特徴量などを判断する必要がないのが画期的です。

機械学習とディープラーニングのイメージ

教師あり/なし学習

教師あり学習は、事前に与えられたデータから、その入力と出力の関係を学習するアルゴリズムです。入力されるデータには、入力値と共にあらかじめそのデータの正解がついており、まさしく正解わかっているデータですから『教師ありデータ』と呼ばれます。大量のデータを人間が用意して、それをプログラムに与えることでプログラムは入力と出力の関係を学習します。一般的に分類や予測は、教師ありデータを用いると良いと言われています。

教師なしデータはその反対で、人間から正解となるデータを与えられることなく、入力データからそのデータの構造、特性、新たな知見を学習するアルゴリズムです。学習する元のデータには正解がついていないにもかかわらず、そのデータから特徴を見つけ出すことが可能になる様々な手法があります。

強化学習

強化学習は先ほどまでのものとは違い、固定的で明確なデータを基にした学習ではなく、プログラム自体が与えられた環境を観測し、各行動の評価を自ら更新してゆき、行動の結果価値が最大化する(=報酬が最も多く得られる)行動を自ら学習していきます。

この強化学習の面白い実験動画が、機械学習の雰囲気を掴むにはわかりやすく、また、動画として非常に面白い(シュールで)ので是非ご覧になってください!

【物理エンジン】強化学習で二足歩行させてみた Reinforcement Learning for Biped Locomotion

おわりに

今回は機械学習について、機械学習とは何なのかという初心者向けの内容をご紹介しました!次回は今回紹介した動画の様な、機械学習の仕組みついても少し踏み込んで紹介したいと考えています!今トレンドのAIについて学んで様々な分野に生かしましょう!

Related Blog
関連記事

2020.07.03
Pythonの各フレームワーク
2020.07.02
openCVで画像解析をしてみよう!
2020.07.01
Pythonでスクレイピングして遊んでみる
2020.06.26
PHPでのエスケープ処理
2020.06.22
【SQLで集計】GROUP BYを用いた便利な集計方法についてご紹介