スマートフォン版で表示

現在、お知らせはありません。

機械学習とはのイメージ

機械学習とは?種類やできること、プログラムとの違いを解説

エンジニアやそれを目指す人なら機械学習という言葉を知らないという人はいないでしょう。しかし、「機械学習とは何?」と聞かれたときうまく説明できますか? ここでは、機械学習の基本的な原理や機能を解説します。

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

機械学習とは

本稿では、まず機械学習とは何かについて説明します。機械学習とは何が何を学習しているのか、従来のプログラムとの違いは何か、についても触れます。類語としてよくでてくるディープラーニング(Deep Learning、深層学習とも)、教師あり学習、教師なし学習についても用語を整理します。

その前に人工知能とは?

機械学習の説明の前に、本来なら人工知能(AI:Artificial Intelligence)の説明が必要なのですが、じつは人工知能(以降AIと表記)に対する明確な定義は存在しません。そもそも知能の定義ができているかどうかも定かではないので、AIもまた定義できないという専門家の意見もあります。

AI研究には2つのアプローチがあります。ひとつは、人間の意識や感情、思考そのものを機械によって再現または構築する試みです。SF映画などで、人間の人格をそっくりそのままチップやロボットに移植するといった描写は、意識や感情をなんらかのモデルとして記述・構成できる技術がもとになっているはずです。ひとつ目のアプローチが目指すのは、おそらくこのような機能となります。

もうひとつは、人間の知能作業を機械にさせようというアプローチです。人間の動作や労働を機械に代行させる試みは古くからあります。からくり人形、自動演奏ピアノ、ロボットなどです。この延長として問題を解いたり推論したりする機械の研究もAI研究といえます。

今日、我々がいう「人工知能(AI)」とは、後者の思考や推論を行うプログラムや演算モデル(の開発や研究)のことを指すことが多いでしょう。本稿では、以降、AIや機械学習の話をする場合、とくに明示がなければ後者の立場による技術、手法を指すことにします。

改めて人工知能(AI)の定義

人工知能学会の設立趣意書には「人工知能は大量の知識データに対して、高度な推論を的確に行うことを目指したものである」という一文があります。

一般社団法人 人工知能学会 定款 - 人工知能学会 (The Japanese Society for Artificial Intelligence)

これを定義とするなら、人工知能(AI)は「質問や入力に対して、膨大な知識データ(ベース)を利用して、推論を行うもの」ということができます。推論とは、知識(情報)を利用して正しい結果、答えを出すことです。

推論の方法にはさまざまなものがあります。したがって、AIの研究・開発は推論部分をどのように機械やシステムで実現するかの研究でもあります。ちなみに、プログラム言語のIF文も推論のひとつといえます。

機械学習の仕組み

機械学習(ML:Machine Learning)は、AIを実現するために推論を行う要素技術のひとつです。もう少し正確にいうと、特定の問題や入力に対して推論(正しい答えを導き出す手順)をさせるための仕組みのことになります。

機械学習における推論は、学習という言葉が入っているように、推論の結果をなんらかの指標で評価し、推論の方法(演算処理の方法)を改善していきます。評価値によって推論の精度を改善していくことを「学習」と呼んでいます。

広い意味では、計算結果を人間が評価して、手作業でプログラム(計算方法)を修正することも機械学習といえなくもないですが、通常は演算結果による機能改善も自律的に実行される手法、ソフトウェアを機械学習といいます。

具体例で示すと、例えば写真データを読み込み、それが犬かどうかを判定する処理(タスク)を実現するため、膨大な犬の写真データを読ませて、そのデータの並びや内容から一定のパターン、特徴点を抽出します。読み込んだ写真と学習に使ったデータに一致するものがあるかではなく、ニューラルネットワークや統計学的な手法で計算された値(出力)を見て、対象物が何かを判断します。

分かりやすく表現すると、画像データ(ビットマップ)の並びに対して、画像が犬であるとき、同じ値や特徴のある値になる特殊な関数(計算方法)があるとします。AI研究はその関数を見つけることです。データ内の特定の値やパターンの出現確率やパターンの分布によって計算したり、大量の元画像をニューラルネットワークに読ませたりして、データの評価を多次元で行います。機械学習は後者で用いられる手法です。

AIの開発は、どんなデータを評価すべきか、どんな統計をとれば特徴点になるのか、あるいは、ニューラルネットワークのノードのつながり、計算方法、重みづけや関数のパラメータを発見、調整する作業といえます。

機械学習の種類

機械学習には、教師あり学習、教師なし学習、強化学習の3種類があるといわれています。それぞれの概要を示します。

教師あり学習

機械学習の学習工程において、入力する学習データに推論の正解となる情報を付与しておく方法です。例えば、犬の写真に「犬」という正解情報をつけておき学習させます。写真から対象を識別する、天気から売上を予想するといった、識別や回帰分析のような正解を明示しやすい処理に向いています。

教師なし学習

学習データに注釈や正解情報をつけないで行う機械学習です。学習されるモデルは解と結びついているわけではなく、特徴点ごとに分類されます。分類されたものに解釈を与えるのは人間となります。犬の写真判定の例でいえば、出力されたグループに対して写真は犬なのか、猫なのか、鳥なのか、といった分類、あるいは犬種の判定に利用されます。

強化学習

学習工程で得られた値に対して「報酬」という評価を与えます。報酬(スコア)が最大になるように機械学習のモデルを自律的に最適化していくシステムを強化学習といいます。ロボットの制御などに応用されることが多い技術です。無人カーが最短時間で移動するコースを学習するような用途が考えられます。Googleが開発した「AlphaGo」(囲碁AI)も強化学習が利用されています。

AIのトレンドワード

機械学習はAIを実現する技術手法の一つです。ほかにもディープラーニングや深層学習、GPUやニューラルネットという用語も耳にします。また、AI関連の求人では、統計学やデータサイエンスの知識やスキルが求められています。これらの用語とAIや機械学習との関係を整理しておきましょう。

AIの歴史

AIは機械的に推論を実現するものとして、その研究は古く1950年代からありました。AI研究の歴史を紐解くと、現在まで3回の技術的な躍進がありました。ピークやブームといってもいいでしょう。

第1期:1956~1970年代

1956年に米国のダートマス大学で開かれたダートマス会議で、ジョン・マッカーシー教授が考える機械の概念を提唱したことがAI研究の始まりといわれています。1960年代に入るとコンピュータが普及しだし、迷路やパズルを解くための機械やアルゴリズムとしてAI(推論)の研究が進みました。AppleのSiriの原型とされる自然言語処理システムである「Eliza」が開発されたのもこのころ(1966年)です。

第2期:1970~1990年代

自然言語処理の研究が進む一方で、AIは簡単な課題や特定のパズルを解く以外の現実的な応用ができないと一時停滞します。1972年(諸説あり)に自然言語処理に向いているPrologという宣言型の言語が開発されました。

70年代はソフトウェア技術も発展した時期で、推論システムのひとつであるエキスパートシステムが注目されたのもこの時期です。エキスパートシステムはナレッジベース(知識データベース)とその推論機構によって、入力に対する答えを知識データから構成するものです。エキスパートシステムは言語処理以外に、経営予測や電車の路線探索アプリなどに応用されました。

ニューラルネットワーク技術が発展したのもこの時期です。もともとは脳神経細胞の研究から生まれた概念です。脳内の神経細胞のつながり(経路)が意識や思考を生み出すという研究から、特定の入力に反応する数理モデルをネットワーク状に縦横につなげたもので計算や推論を行うというモデルがニューラルネットワークです。

1980年代に半導体やソフトウェアでニューラルネットを構成し、言語処理、音声認識、画像認識などへの応用が進みました。

第3期:2000年~

2000年に入ってコンピュータによるチェスや将棋が人間と互角かそれ以上になってきましたが、どれも特定用途に特化したAIであることには変わりありませんでした。しかし、2006年に発表された「A fast learning algorithm for deep belief nets」という論文が2010年に入ると「ディープラーニング」という新しい機械学習の実装技術によって、めざましい成果をあげます。囲碁や将棋のようなゲームだけでなく、音声認識、画像認識、機械翻訳が実用域に入るようになりました。

AI研究のブレークスルー

ディープラーニングの元となった論文は2006年に発表されましたが、実を結ぶのに4年以上のブランクがあります。その理由は、機械学習やニューラルネットの実装には、通常のコンピュータ(プロセッサ)の処理速度、性能では実用域に達しなかったからです。

AI研究者はニューラルネットの高度化、ディープラーニングなど機械学習の新しい方法を模索していました。そして画像処理、グラフィック処理に特化したGPUを、畳み込みニューラルネットワーク(GNN)に利用すると、性能が格段に上がることが判明します。

画像伝送や画像処理システムを開発したことがある人には当たり前なことですが、画像処理とはつまり行列演算の塊です。GPUは画素データの行列演算を得意とします。GNNなどニューラルネットワークの処理とGPUは非常に相性がいい組み合わせだったのです。

機械学習とプログラムの違い

機械学習によって作成されたAIモデルは、ソフトウェアの形でシステムに組み込まれます。ソフトウェアというと一般的なプログラムを思い浮かべますが、ディープラーニングなどの機械学習はプログラムとは異なる特徴があります。

プログラムは、処理方法や計算方法があらかじめすべて設定されています。どんな処理をするのか、どんな計算をするのか、アルゴリズムと処理手順は明確です。したがって、条件が同じならば必ず同じ結果となります。処理のシーケンスはあとからたどることもでき、同じ処理を再現することも簡単です。

しかし、機械学習によって構成されたAIは、モデルの中のニューラルネットでどのような計算や判断をしているのかを特定することはできません。ほかの条件は同じなのに、同じ結果にならないこともあります。エラーや計算ミスはほとんどなく、性能・精度は人間以上のAIはいくつも開発されていますが、なぜその答えになったのかはその学習モデルの開発者でも説明することができません。

まとめ

ここまでで「機械学習とは?」というそもそもの疑問に答える概要をお伝えしてきましたが、本記事をお読みの方の中には、より具体的な技術を学んでいる方もいることでしょう。

もし、機械学習を学び、転職も含めてキャリアに活かしたいとお考えなら、転職エージェントサービスを利用するのも一案です。

dodaエージェントサービスでは、機械学習に関する求人の市場感や具体的な求人探し、転職につなげるための独学ポイントや面接対策など、転職活動のお手伝いをいたしますのでぜひお気軽にご相談ください。

この記事の監修者

技術評論社 デジタルコンテンツ編集チーム

理工書やコンピュータ関連書籍を中心に刊行している技術評論社のデジタルコンテンツ編集チームでは、同社のWebメディア「gihyo.jp」をはじめ、クライアント企業のコンテンツ制作などを幅広く手掛ける。

自分の強みや志向性を理解して、キャリアプランに役立てよう
キャリアタイプ診断を受ける
ITエンジニア専任のキャリアアドバイザーに無料で転職相談
エージェントサービスに申し込む(無料)
キャリアパスをかなえる求人を探してみよう
求人を探す

関連コンテンツ

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

【人気企業300社の合格診断】今、転職できる可能性は?
ハイクラス転職サービスdodaX