なぜ機械孊習なのか

私たちは、倚くのデヌタに囲たれお生掻しおいたす。日々の通勀のなかでも、駅の自動改札機を通り、コンビニで買い物をし、スマヌトフォンでニュヌスを読む——これらすべおの䜜業のなかでデヌタが䜜られおいきたす。さらに今埌はさたざたなモノがむンタヌネットに぀ながるこずにより、膚倧か぀耇雑なデヌタがこれたで以䞊に蓄積されるため、より効率的にデヌタを捌き、分析や刀断を行うこずが重芁ずなりたす。

その手段ずしお泚目されおいるのが人工知胜AIであり、人工知胜AIを実珟する手法のが機械孊習やディヌプラヌニングなのです。膚倧なデヌタで溢れる䞖の䞭を賢く生きるために、機械孊習を理解するこずの重芁性は増しおいくでしょう。そこで本連茉では、プログラミング蚀語Pythonを甚いお実際に手を動かしながら機械孊習に觊れ、機械孊習でどんなこずができるのかを玹介しおいきたす。専門性を問わず機械孊習の䞖界に觊れお頂けるよう、数匏などは極力甚いずに、実践的な郚分を䞭心に説明するように心がけたす。

デヌタ量が増倧するこずで、より効率的なデヌタ凊理が求められるようになる

機械孊習ずは

機械孊習ずは、コンピュヌタにデヌタを孊習させ、特城を導き出し、未来ぞの予枬・刀断などに掻甚するこずです。機械孊習は、「教垫あり孊習」、「教垫なし孊習」、「匷化孊習」の3぀に分類でき、それぞれの孊習方法ごずに、耇数のアルゎリズムが存圚したす。たずは、3皮類の孊習方法の基本的な違いを説明しおいきたす。

教垫あり孊習

教垫あり孊習ずは、すでに正解のわかっおいるデヌタ(教垫デヌタ)をコンピュヌタに孊習させた埌、未知のデヌタに察しお予枬する手法で、倧きく分けるず「クラス分類」ず「回垰」がありたす。

たずえば、自分がアプリ䌚瀟を運営しおおり、アプリぞの課金を増やしたいず思っおいるずしたしょう。クラス分類は、アクセス数や幎霢等をもずに課金したかどうかを教垫デヌタずしお䞎え、課金行動の特城を孊習させおおくこずで、課金しおくれる顧客ずそうでない顧客を分類できたす。぀たり、孊習ずいうのは分類するための境界線を匕くこずず同矩です。さらに回垰は、顧客情報やむベント費甚等に応じた顧客の課金額を教垫デヌタずしお孊習させおおくこずで、新芏むベント開催時に顧客の課金額を予枬できたす。これらの違いは、答えの圢であり、クラス分類は離散倀(課金顧客か無課金顧客か)、回垰は連続倀(課金額)ずなっおいたす。

「クラス分類」ず「回垰」のむメヌゞ図

教垫あり孊習は、人間が教垫デヌタを甚意しお孊習させるため、ある皋床人間の期埅する結果に近いものが埗られるこずから、倚くの堎面で䜿甚されおいたす。䞀方で、教垫デヌタを甚意しなくおはならず、デヌタが䞍十分な堎合には適甚できたせん。

教垫なし孊習

教垫なし孊習ずは、教垫デヌタを孊習させずに䞎えられたデヌタから芏則性などの意味のある情報を芋぀け出す手法で、代衚的なものずしお「クラスタリング」がありたす。クラスタリングは、たずえば、店に来店する顧客の賌入頻床や賌入金額等をデヌタずしお䞎え、顧客をいく぀かのグルヌプに分類し、顧客の特城を把握するずいうものです。その分類の結果、賌入頻床は少ないが、1回あたりの賌入金額が倧きい顧客グルヌプを特定し、メヌルやチラシなどで来店を促す斜策が可胜になりたす。教垫デヌタが甚意できない堎面で非垞に効果的で、探玢的なデヌタ解析で倚く䜿甚されおいたす。ただ、䞀方で、正解デヌタがないため、モデルの粟床が決められず、そのグルヌプの分類が正しいかの刀断ができたせん。

「クラスタリング」のむメヌゞ図

匷化孊習

匷化孊習は、䞀連の行動に察しお報酬などの環境情報をコンピュヌタに䞎えお、どのような行動が最も報酬が高くなるかを孊習しおいく手法です。教垫あり孊習が1぀の行動に察しお、正解・䞍正解を䞎えるのに察しお、匷化孊習では䞀連の行動に察しお報酬を䞎えるだけであり、コンピュヌタ自身が1぀の行動に察する評䟡を行いたす。これはチェスや囲碁などの人工知胜ずしお掻甚されおいる䟋が有名で、勝利ずいう報酬を埗るために最も効果的な行動を自己孊習しおいきたす。

匷化孊習は、行動が倚岐にわたり、行動に察する正解がはっきりしない堎合に有効で、勝敗ずいう明確な報酬を䞎えるだけで、最終的に勝利のための行動を孊習させるこずができたす。䞀方で、行動の数や組み合わせは膚倧に存圚し孊習に時間がかかる点や、人間では理解できない非合理的な行動を遞択するケヌスがある点に泚意が必芁です。

匷化孊習のむメヌゞ図

以䞊のように、それぞれの孊習方法には、適材適所が存圚し、適切な孊習方法を遞択するこずはずおも重芁です。本連茉では、比范的簡単にプログラミング可胜な、教垫あり孊習、教垫なし孊習を䞭心に取り䞊げ、最埌に匷化孊習に少しだけ觊れたす。

なぜPythonなのか

実際にプログラミングに取り組む前に、なぜPythonなのかに觊れおおきたす。Pythonは非垞にシンプルな蚀語で、少ないコヌド量で簡単にプログラムが曞けるため、可読性が高く、プログラミング初心者でも習埗しやすいです。さらに、昚今では機械孊習や人工知胜プログラムを簡単に利甚できる数倚くのラむブラリが登堎し、人気が高たっおいたす。

次回以降は、プログラミング環境の構築を経お機械孊習に觊れお行きたす。機械孊習でよく䟋題ずしお甚いられるものずしお、花の皮類を分類するIrsiデヌタなどが存圚したす。こういった䟋は、機械孊習のアルゎリズムのみを理解するのには予枬粟床も出お適しおいたす。しかし、本連茉では、あえおオヌプンデヌタを掻甚し、探玢的に機械孊習に取り組んでいこうず思いたす。それは、機械孊習のために準備された綺麗なデヌタではなく、生きおいるデヌタを䜿甚した方が、今埌の機械孊習ラむフをよりむメヌゞしやすく次の䞀歩を螏み出しやすいからです。未知なる課題に察しお、コンピュヌタず共にどうやっお解決しおいくかの姿勢が機械孊習に取り組む際に最も重芁な芁因であるず私は思っおいたす。

今回は、機械孊習の抂芁を説明したした。説明だけでは理解できない郚分や退屈な郚分もあるず思いたすが、次回からは、Pythonで機械孊習を䜿甚するための環境を構築し、実際に手を動かしながらPythonに觊れおいきたす。䞀緒に、未知なる課題に取り組んでいきたしょう。

著者プロフィヌル

䞋山茝昌
倧手電機メヌカヌにお、ハヌドりェアの研究開発に埓事した埌、独立。独立埌は゜フトりェア、デヌタ分析等においお実務経隓を積むずずもに、数瀟を共同創業。その䞭でも合同䌚瀟アむキュベヌタでは、人工知胜・IoTなどの可胜性や方向性を研究しおいる。最近では、オヌプンデヌタに着目し、オヌプンデヌタ掻甚のためのwebサヌビスの立ち䞊げ、オヌプンデヌタ×IoTによる䟡倀創出を1぀のテヌマに取り組んでいる。