2014年8月18日
日常にある機械学習の応用例
本記事は、原著者の許諾のもとに翻訳・掲載しております。
機械学習とは何でしょうか? 機械学習の信頼できる定義(翻訳) を読むことはできますが、実際のところ、機械学習とは解決される問題によって定義されるものです。だから、機械学習を理解するには、いくつか問題の実例を見てみるのが一番です。
この記事では、まずは現実の世界でよく知られよくわかっている機械学習問題の実例を見ていきます。それから、標準的な機械学習問題の分類法 (ネーミング・システム) を見て、それらの標準的なケースの一つとして問題を識別する方法を学びましょう。これは価値のあることです。なぜなら私たちは、直面している問題のタイプを知ることでどんなデータが必要なのか、どのタイプのアルゴリズムを試すべきかを考えられるからです。
機械学習、10の応用例
機械学習の問題はたくさんあります。それらは、あなたが毎日ウェブ上やパソコン上で使うソフトウェアの中核や難しい部分を構成しています。Twitter上の「フォローしますか」というサジェストやAppleのSiriの会話認識を思い浮かべてください。
以下の機械学習の10の応用例は、機械学習とは何なのか、基礎をしっかり教えてくれます。
- スパム検知 : 受信ボックスのなかのメールが与えられると、それらのメッセージのうち、どれがスパムでどれがそうでないかを識別します。この問題のモデルがあれば、プログラムがスパムでない電子メールを受信ボックスに残し、スパム・メールをスパム・フォルダーへ移すということが可能になります。私たちは皆、この事例については良く知っているはずです。
- クレジットカード不正検知 : ある顧客の一か月のクレジットカード取引履歴を与えられると、それらの取引がその顧客によってなされたものか否かを識別します。この決定モデルを持つプログラムは、不正な取引のお金を返金することができます。
- 数字認識 : 封筒の上に手書きの郵便番号が書いてあると、その手書き文字の数字を識別します。この問題のモデルは、コンピューター・プログラムが手書きの郵便番号を読み取り、封筒を地域毎に仕分けることができるようにします。
- 会話理解 : ユーザーが発言すると、そのユーザーによってなされた特定の要求を識別します。この問題のモデルは、プログラムにその要求を理解し応えようと試みさせます。Siri の入った iPhone には、この機能があります。
- 顔検出 : 数百のデジタル写真のデジタル・フォトアルバムを与えられると、特定の人物が写っている写真を識別します。この判断プロセスのモデルのおかげで、プログラムは人物ごとに写真をまとめることができます。いくつかのカメラや iPhoto のようなソフトウェアには、この機能があります。
写真による顔検知の事例.
Photo by mr. ‘sto Licensed under a Attribution-ShareAlike 2.0 Generic Creative Commons License.
- 商品レコメンデーション : ある顧客の購買履歴と膨大な製品在庫目録が与えられると、それらの製品のうちその顧客が興味を持って購入しそうなものを識別します。この決定プロセスのモデルは、顧客に商品を推奨し購入を促すようにプログラムされています。Amazon にはこの機能があります。それにFacebookについても考えてみると、GooglePlus や Facebook は、あなたがサインアップするとあなたにつながるよう、ユーザーたちに勧めています。
- 医療診断 : ある患者に表れている兆候と匿名患者の記録のデータベースが与えられると、その患者が病気にかかっているかもしれないと予測します。この判断問題のモデルは、医療の専門家たちに判断の一助を提供するプログラムで使用することもできます。
- 株式取引 : 現在と過去の株式の値動きを与えられると、その株式を買うか、保持するか、それとも売るべきかという決定をします。この決定問題のモデルは、財務アナリストに決定の一助を提供することができるでしょう。
- 顧客セグメンテーション : あるユーザーが試用期間に取った行動のパターンとすべてのユーザーの過去の行動データが与えられると、有料バージョンへ移行するユーザーとしないユーザーを識別します。この決定問題のモデルのおかげで、プログラムは試用中の顧客に対してより早期に契約するよう誘導したり、またはよりよく使ってもらうように干渉できるようになります。
- 形状検出 : ユーザーがタッチ・スクリーン上に手書きした形と既知の形状についてのデータベースが与えられると、ユーザーがどの形状を描こうとしたのかを判断します。この判断のモデルは、ユーザーが描いたギザギザの図形を理想的な形状で描写するようプログラムされています。 Instaviz というiPhoneのアプリには、この機能があります。
これら10の応用例は、機械学習の問題というものがどんなものか、よく伝えています。 歴史的な事例の集積があり、モデル化される必要のある決定があり、そして決定が効果的にモデル化され自動化されることで得られるビジネスやドメインの利益があります。
これらの問題のいくつかは、自然言語処理 や マシンビジョン (人間がやることをより容易にする)のような人工知能における最も難しい問題です。そのほかの問題も難しいものですが、スパム検知やクレジットカード不正検知のように機械学習の古典的な事例です。
先週あなたが行ったオンラインとオフラインのソフトウェアでのやり取りを考えてみてください。直接的または間接的にあなたが使った機械学習の事例の10個や20個は、すぐに思い当たるはずです。
機械学習の問題のタイプ
上記の機械学習の問題の事例の一覧に目を通したので、あなたは類似点を見つけ始められます。これは価値のあるスキルです。なぜなら、問題のエッセンスを抽出することに長けていると、自分がどんなデータを必要としているか、そしてどんなタイプのアルゴリズムを試すべきかを、効果的に考えることができるようになるからです。
機械学習で扱う問題には共通するクラスがあります。以下に述べるこれらの問題クラスは、私たちが機械学習を まさにしている ときに注意する問題のほとんどの原型になっています。
- 分類 : データには、種類を割り当てられたことを意味するラベルを付けます。例えば、スパム/スパムではない、不正/不正ではない、といった風に。モデル化された決定は、ラベルの貼られていない新しいデータにラベルを割り当てます。これは問題の区別、グループ間の相違のモデル化と考えることができます。
- 回帰 : データには、ラベルではなく、実際の値(例えば浮動小数点数)のラベルが付けられます。理解しやすい事例としては、時刻と連動した株価のような時系列データです。モデル化された決定は新たな予測されていないデータを予測することを評価するものです。
- クラスタリング : データはラベル付けされませんが、データの中の類似性と自然な構造の別の尺度に基づいてグループ分けされます。上記のリストからの例では、名前なしの顔だけで画像を編成するものがそれにあたるでしょう。その場合、Mac の iPhoto のように、ユーザーがグループに名前を割り当てなければなりません。
- ルールの抽出 : データは、問題のルール(前提/結果 別名 if-then )を引き出すための基礎として使われます。そのようなルールは、大体そうなのですが、扱いにくいかもしれません。つまり、データの特性間に統計学的に支持できる関係を発見するということであり、そのとき予測されている何かを含んでいる必要はないのです。 ビールとおむつ の購入の間にある関連性の発見がその一例です。
あなたが、ある問題が機械学習の問題である(データからモデル化される必要があるような決定問題である)と考えるならば、次に考えるべきことは、どんなタイプの問題として簡単にそれを言い表すことがきできるか、または、クライアントや要求が求めている結果はどのようなものかであり、逆算してやっていくべきでしょう。
リソース
現実世界での機械学習の問題の一覧を提供してくれるリソースはあまりありません。それらはどこかにあるかも知れませんが、私には見つけられません。とはいえあなたのためになるすばらしいリソースをいくつか見つけてあります:
- The Annual “Humies” Awards : アルゴリズムによって達成された結果に対して与えられた賞の一覧。それらは、人間によって出された結果と競り合っています。それは刺激的です。なぜなら、アルゴリズムはデータまたはコスト機能だけから結果を出したのに、それが特許を侵害するほどに創造的かつ独創的になり得たから。すごい!
- The AI Effect : 人工知能プログラムが十分良い結果を成し遂げたとたん、もはやそれは人工知能としてみなされなくなり、その代わりに、それは単なるテクノロジーとして、日常的に使われるようになるという考えがあります。機械学習にもちょうど当てはまります。
- AI-Complete : 人工知能のとても難しい問題に言及しています。もし解決されれば、Strong AI(SFの中で想像されるAI、本当のAI)の実例になるでしょう。Computer Vision と Natural Language Processing の問題は、いずれも AI-Complete の問題の実例であり、機械学習の問題のドメイン固定カテゴリーとしても考えられるでしょう。
- What are the Top 10 problems in Machine Learning for 2013? この Quora の質問には、いくつかの優れた答えがあり、現実的な機械学習の問題の幅広いカテゴリーをリスト化しています。 現実世界の機械学習の問題について、いくつかの共通事例とその種類の分類法を見てきました。いまや私たちは、問題が機械学習問題なのかどうかコメントすることや、問題の描写から要因を拾い上げること、そして、分類、回帰、クラスタリング、規則の抽出のいずれであるかを決定することにいくらか自信がつきました。
株式会社リクルート プロダクト統括本部 プロダクト開発統括室 グループマネジャー 株式会社ニジボックス デベロップメント室 室長 Node.js 日本ユーザーグループ代表
- Twitter: @yosuke_furukawa
- Github: yosuke-furukawa