分かりやすく解説!人工知能、機械学習とは

機械学習(ML:Machine learning)とはコンピュータにデータ間の法則を自動的に見つけさせる方法の総称になります。

機械学習は音声認識、画像認識、マーケティングデータの分析、農作物の生産量予測、医学生物学でのデータ解析など、幅広い分野で活用されています。

コンピュータに処理を命令するための言語をプログラミング言語と言いますが、機械学習をコンピュータに実装するためのプログラミング言語はPython(パイソン)がよく使用されています。

カヲル
カヲル

最近特によく聞く機械学習。

本記事では難しい概念や数式は使わずに全体像と用語を説明していくよ!

人工知能(AI)とは

AIの定義

カヲル
カヲル

まず「AI」とは何か分かるかな?

心太
心太

えっと、「人工知能」のことですよね。

人間の脳をコンピュータで真似する感じかなぁ。

実は人工知能(AI:Artificial Intelligence)には一意的に決まった定義はありません。しかし、一般には下記の意味合いで理解されています。

人工知能(AI)

人間が普段行うさまざまな思考や判断を人工的に再現したコンピュータシステム。

まず、簡単な例として人間の顔写真を見て性別を判断することを考えてみましょう。

私たち人間は下記のようにいろいろなパターンがあっても、人間の顔写真を見たら男か女かほぼ見分けることが出来ます。

  • 画像の中での顔の位置が異なる(中心に写っている、右に寄っている、など)
  • 年齢が異なる(子供~老人)
  • 人種が異なる(白人、黒人、黄色人種)

では、コンピュータではどうでしょうか。数枚の男女の顔写真を登録しても、ちょっとでも違えば性別を判断できません。

このように私たち人間が普段何気なく行っている思考や判断でも、コンピュータで再現するのは非常に難しいものがあります。

カヲル
カヲル

現在では技術の進歩により、画像認識では人間と同等かそれ以上の精度で判断できるものもあるよ。

強いAIと弱いAI

強いAIとは私たち人間のように自意識を持ち、全認知能力を必要とする作業も可能なAIを言います。

例えば、空を自由に飛べる子守用ネコ型ロボット(友達タイプ)や某バトルマンガに出てくる主人公(戦闘民族)を倒す目的で開発された人造人間などがあります。

カヲル
カヲル

これら強いAIは技術的なハードルも高く、いまだに実現できてないよ。


一方で「ある特定の領域のみ」、人間と同等以上の判断を行うAIを弱いAI(特化型AI)と言います。

例えば、Googleの画像認識、将棋やチェスのAI、無人レジ、自動運転などがあります。

心太
心太

弱いAIと聞くとポンコツ感あるけど、違うんですね。

カヲル
カヲル

確かに弱いAIと言うと聞こえは悪いけど、社会を大きく変える可能性を持っているよ。

AIは現断面では私たち人間ほど広範囲なことは出来ませんが、特定の領域に絞れば人間と同様以上の正確な判断を、圧倒的スピードで行うことができるようになりつつあります。

今後は決められた単純作業だけではなく、長年の知識や経験に頼っていた分野もAIに代替される日が来るでしょう。

機械学習(ML)とは

機械学習

カヲル
カヲル

比較的新しい自販機では年齢や性別を判断して、商品をおすすめすることができるよね。では、コンピュータ上でどうやって性別を判断するか分かるかな?

心太
心太

うーんと、if文とかの条件分岐を多重に巡らせて作るのかな。。。

カヲル
カヲル

そう思うよね!でも、具体的な条件式は思い浮かばないんじゃないかな?こうして考えてみると人間の思考過程はとても複雑なんだよ。

人間は顔写真だけでも無意識に考えて性別を判断できます。しかし、具体的に判断のルールを考えてみると、複雑すぎて表現できないことも多いです。

このことは人間のような高度な知能を、従来のプログラミング手法であるif文などを使って実現するのは困難であることを示しています。こうした場合に活用されるのが機械学習(ML:Machine learning)になります。

機械学習では、人間が性別を判断するための方法(アルゴリズム)をコンピュータにプログラミングする必要はありません。代わりに千枚、1万枚と大量の画像データを与え、法則をコンピュータに見つけさせます。

機械学習(ML)

データ分析手法の一つ。データからコンピュータが自動で学習し、ルールやパターンを見つける方法。

カヲル
カヲル

次は機械学習の手法について説明するね!大きく分けて教師あり学習教師なし学習があるよ。

教師あり学習

まず、教師あり学習(Supervised learning)から見ていきます。

教師あり学習

「入力」となるデータと「答え」となるデータをペアで大量にコンピュータに渡すことで、入力Aから答えBを予測するようなAIを作るための機械学習手法。

カヲル
カヲル

例えば、動物の画像(入力A)から、そこに写っている動物の名前(答えB)を予測するようなAIを作りたいときに使うよ。

なお、「入力」データと「答え」データのペアを教師データ(Training data)と言います。

また、「入力データが持つ測定可能な特性」のことを特徴量説明変数と言い、「答え」データのことを正解データ正解ラベル(または単にラベル)や目的変数と言います。

「入力データの測定可能な特性」とは、例えば下記のようなものがあり、それぞれが特徴量です。

  • 画像に写っている物体の位置、色合い、大きさ、形状など
  • 人間の身長、体重、握力など
  • 英語、国語、社会、理科、数学のテストの点数など

機械学習後はコンピュータの中に、例えば画像データから答えを予測する法則が出来上がります。

そのため、新しい画像を渡すと探し出した法則に従って画像データから答えを予測できます。このように法則に従って予測することを推論(Inference)と言います。

カヲル
カヲル

「入力」データと「答え」データの関係を分析するには、統計学の手法である回帰や分類があるよ。

回帰

正解データが数値となる教師あり学習の手法。


例えば、気温からアイスクリームの販売量を予測することなどが当てはまります。


分類

正解データが連続的な数値ではなく、いくつかの選択肢のうち1つとして解釈できる場合の教師あり学習の手法。


例えば、足の数を見て、6本だと昆虫、8本だと蜘蛛というように、あらかじめ与えられたクラスに分けることなどが当てはまります。

教師なし学習

つぎに教師なし学習(Unsupervised learning)を見ていきます。

心太
心太

逆に教師なし学習はコンピュータに全くデータを与えないということですか?

カヲル
カヲル

それはさすがに無理だね。

教師なし学習は「入力」データのみ与える手法だよ。

教師なし学習では「答え」を教えないため、「入力」に対して「答え」を推論することができません。

教師なし学習

「入力」と「答え」のペア(教師データ)ではなく、「入力」データだけを与え、コンピュータが「入力」データ自体に関する特徴や法則を導く機械学習手法。

その代わりに、大量に与えたデータからそれぞれがどのような関係や法則を持っているか分析させる方法をとります。代表的なものにクラスタリング(Clustering)次元削減(Dimensionality reduction)があります。

クラスタリング

特徴量に着目し、似ているもの同士をグループ分け(クラスタリング)すること。


例えば、犬と猫の画像データをコンピュータに大量に与え、似ている度合いで2つのグループに分けるとすると、画像の特徴量からコンピュータが学習します。
しかし、答えを与えていないため、それぞれが何の動物なのかはコンピュータは予測できません。


次元削減

次元削減とは、文字通り、データの次元を減らすこと。


例えば、学生達のテストの点数をまとめたデータ(表)があったとします。

学生ごとのデータは行を追加し入力していくとすると、列に「学生の氏名、英語、国語、社会、理科、数学」のデータ(計6列)が入力されます。


学校の先生としては「文系能力」、「理系能力」の2つの能力に分けるなど、ざっくりと学生の傾向を把握したいときがあります。


このような時にコンピュータを使って各テストのデータを分析することで、「英語、国語、社会をまとめて文系能力」、「理科、社会をまとめて理系能力」のように、たくさんある列(次元)をどのように減らせるか学びます。

学び終えたAIは「よい列のまとめ方」として、6列あったデータを3列(学生の氏名、文系能力、理系能力)にまとめることができます。

強化学習

機械学習は、大きく分けて教師あり学習と教師なし学習の2つがありますが、参考までに強化学習(Reinforcement learning)も見ていきます。

カヲル
カヲル

教師あり学習や教師なし学習の他にも、近年では強化学習も注目を集めているよ!

この強化学習は、囲碁やチェスなどのゲームAIを作成するときなどに使われる手法です。

強化学習

教師あり学習や教師なし学習のようにデータを与えるわけではなく、システム自身が試行錯誤しながら、精度を高めていく機械学習手法。

強化学習は、たくさんある選択肢の中から1つ行動を選んで、その結果がどのような利益を得たかというデータから最善の行動を学んでいきます。

強化学習は、行動を起こした直後の利益を考えるのではなく、将来的な利益(囲碁やチェスの場合はゲームの勝利)を踏まえて学びます。

カヲル
カヲル

機械学習により、正しく将来予測ができるようになると、売り上げを最大化するためのマーケティング戦略を考えたり、配送ルートを最適化するための方法を考えたりできるようになるよ。

そのため、機械学習はビジネスの分野でも広く用いられているよ

関連記事

モデルと学習

強化学習は大きく分けて教師あり学習の回帰分類、教師なし学習のクラスタリング次元削減に分けれることを説明しました。

この4種類も大きな括りであり、4種類それぞれに下記のような具体的な手法があります。

  • 決定木分類
  • ロジスティック回帰
  • ランダムフォレスト
  • アダブースト
カヲル
カヲル

これらは法則を導くための手順の違いになるよ。

もう少し踏み込んで説明するためにモデルという概念を説明するよ。

モデル(Model)とはデータ間の法則を表現した数式になります。

例えば、「y = a x + b」というモデル(数式)があったとします。このモデルのaとbの値は、最初は不明になっています。

ここでモデルにデータを与えることで不明だったaとbの値が判明します。不明だったaとbの値が次第に判明していく過程を学習と呼びます。

つまり、上記4つの手法は決定木モデルランダムフォレストモデルなどのように設定しているモデルが異なるということになります。

カヲル
カヲル

モデルの不明箇所を判明させるための計算処理を機械学習アルゴリズムと言うよ。

プログラミングや機械学習をもっと学んでみたい方向けリンク

※更新情報(2022年8月1日):なんと0円コースあります!

機械学習以外の分野でも、ますます需要が高まるプログラミング
プログラミングスクールのTechAcademyにて1週間の無料体験があるとの情報をゲットしました。無料なのでとりあえず試してみるのもありかも。

>>TechAcademyの無料体験はこちら

機械学習と統計学の違い

前項までで回帰など統計学で馴染みのある言葉が出てきました。機械学習を理解するために統計学との違いを理解する必要があります。

  • 機械学習 ・・・ 機械が自動的に学習するもの
  • 統計学 ・・・ データのルールやパターンを統計的に判断するもの

ただし、現代では統計学でもコンピュータを用いますので線引きは曖昧です。

統計学の場合はデータの「説明」を目的としており、機械学習は「予測」を目的にしていると理解することもできます。

統計学では、ある程度、直感的に理解できるモデルが多くありますが、機械学習では直感的に理解できない特徴量も考慮できるので、モデルの精度が高まる可能性があります。

機械学習で使うプログラミング言語

心太
心太

実際に機械学習の世界に飛び込んでみたいです!

プログラミング言語はどのようなものが使われているのですか?

カヲル
カヲル

まず、機械学習に使われる4つの言語の特徴について説明するね!

Python

Python(パイソン)は機械学習で最も人気のある言語です。

Webアプリ、デスクトップアプリ、組み込みアプリなども開発できますが、機械学習用でよく使う機能(ライブラリ)が豊富に用意されているため、おすすめの言語になります。

カヲル
カヲル

これから機械学習を始める人にとっても第一候補になると思うよ。

R

R(アール)は元々は統計やデータ分析に特化した言語ですが、機械学習の分野でもよく使用される言語です。

Rにもさまざまなライブラリが用意されており、統計に関してはPythonより充実しています。そのため、データ分析に関しては柔軟に操作・処理できるでしょう。

RはPythonの次に機械学習の分野で人気のある言語になります。

Scala

Scala(スカラ)ははオブジェクト指向言語関数型言語の特徴を統合したプログラミング言語です。主にJava(ジャバ)プラットフォーム上で動作し、既存のJavaのプログラムと容易に連携させることができます。

Scalaにも、PythonやRほど充実していないものの機械学習用のライブラリが用意されています。

但し、Scalaは既にJavaを習得している方向けの言語と言えそうです。

Java

Java(ジャバ)はプログラミング言語の中で最も人気のある言語です。

Javaは仮想マシン上で動作することよってプラットフォーム(OSやハードウェア)への依存性を排除することを理念として開発された経緯があります。

機械学習向けのライブラリも用意されているため、PythonやRと並行して学習しておくとよい言語になります。

プログラミングや機械学習をもっと学んでみたい方向けリンク