デザイナーのための機械学習入門 デザイナーはコードを書くべきか?

“デザイナーがコードを書くべきかどうかについては、現在も議論が続いている。

あなたがこの問題についてどのように考えるにせよ、ほとんどの人はデザイナーがコードについて知るべきだということに同意するでしょう。これはデザイナーが制約を理解し、開発者と共感するのに役立ちます。また、問題を解決する際に、デザイナーがピクセルの完璧な枠にとらわれずに考えることができるようになります。同じ理由で、デザイナーは機械学習について知っておくべきだ。

簡単に言えば、機械学習とは「明示的にプログラムされることなく学習する能力をコンピュータに与える学問分野」(Arthur Samuel, 1959)である。アーサー・サミュエルがこの言葉を作ったのは50年以上前のことだが、機械学習の実用例を目にするようになったのはごく最近のことだ。デジタルアシスタント、自律走行、スパムのない電子メールなどは、すべて機械学習のおかげである。

過去10年間で、新しいアルゴリズム、より優れたハードウェア、そしてより多くのデータが、機械学習を桁違いに効果的なものにした。
グーグル、アマゾン、アップルといった企業が、強力な機械学習ツールの一部を開発者向けに公開したのはここ数年のことだ。今こそ、機械学習について学び、あなたが作っている製品に応用する絶好の機会だ。

機械学習がかつてないほど身近になった今、デザイナーは機械学習をどのように応用して製品を改善できるかを考える機会がある。デザイナーは、何が可能で、どのように準備し、どのような結果を期待すべきかについて、ソフトウェア開発者と話し合うことができるはずだ。以下は、こうした会話のインスピレーションとなるべきアプリケーションの例だ。

機械学習は、それを使用する個人に経験をパーソナライズすることによって、ユーザー中心の製品を作成するのに役立ちます。これにより、レコメンデーション、検索結果、通知、広告などを改善することができる。

機械学習は、異常なコンテンツを見つけるのに有効だ。クレジットカード会社は詐欺の検出に、電子メールプロバイダーはスパムの検出に、ソーシャルメディア会社はヘイトスピーチなどの検出に利用している。

機械学習によって、コンピューターは私たちが話すこと(自然言語処理)や見ること(コンピューター・ビジョン)を理解できるようになった。これにより、Siriは「Siri、リマインダーを設定して…」と理解し、Googleフォトは愛犬のアルバムを作成し、Facebookは視覚障害者に写真を説明することができる。

機械学習は、ユーザーがどのようにグループ化されているかを理解するのにも役立つ。このインサイトを利用して、グループごとに分析を行うことができる。ここから、異なる機能をグループ全体で評価したり、特定のユーザーグループだけに展開したりすることができる。

機械学習によって、ユーザーが次にどのような行動を取るか予測することができます。これを知ることで、ユーザーの次の行動に備えることができる。例えば、ユーザーがどのようなコンテンツを見ようとしているかを予測できれば、そのコンテンツをプリロードして、ユーザーが見たいときにすぐに見られるようにすることができる。

機械学習の種類
アプリケーションと利用可能なデータに応じて、選択できる機械学習アルゴリズムの種類は異なる。それぞれについて簡単に説明しよう。

教師あり学習では、正しくラベル付けされたデータを使って予測を行うことができる。ラベル付けされたデータとは、有益なタグや出力を持つ例のグループである。例えば、関連するハッシュタグを持つ写真や、家の特徴(例:寝室の数、場所)とその価格などだ。

教師あり学習を使うことで、ラベル付けされたデータに、データをカテゴリーに分けるか、データの傾向を表す線を当てはめることができる。この線を使って、新しいデータの予測を行うことができる。例えば、新しい写真を見てハッシュタグを予測したり、新しい家の特徴を見て価格を予測したりすることができる。
予測しようとしている出力がタグや値のリストであれば、それを分類と呼ぶ。予測しようとしている出力が数値の場合は、回帰と呼ぶ。

教師なし学習は、ラベル付けされていないデータがある場合や、どのような出力(画像のハッシュタグや家の価格など)に意味があるのか正確にはわからない場合に役立つ。その代わりに、ラベル付けされていないデータの中からパターンを特定することができる。例えば、eコマースサイトで関連する商品を特定したり、同じような買い物をした他の人に基づいて誰かに商品を勧めたりすることができる。

パターンがグループであれば、それをクラスタと呼ぶ。もしそのパターンがルール(例:もしこれなら、次はこれ)であれば、それをアソシエーションと呼ぶ。

強化学習は既存のデータセットを使わない。その代わりに、報酬で強化された環境で試行錯誤を繰り返し、独自のデータを収集するエージェントを作成する。例えば、エージェントはコインを集めると正の報酬を受け取り、グーンバにぶつかると負の報酬を受け取ることで、マリオをプレイすることを学習することができる。

強化学習は、人間の学習方法にヒントを得ており、コンピュータに教える効果的な方法であることが判明している。特に強化学習は、囲碁のようなゲームをプレイするようにコンピューターを訓練するのに効果的だ。

解決しようとしている問題と利用可能なデータを理解することで、使用できる機械学習の種類が制約される(例えば、教師あり学習で画像内のオブジェクトを識別するには、ラベル付けされた画像データセットが必要である)。しかし、制約は創造性の賜物である。場合によっては、まだ利用できないデータを収集したり、他のアプローチを検討したりすることもできる。

機械学習は科学であるとはいえ、誤差はつきものだ。この誤差によってユーザーの体験がどのような影響を受けるかを考えることが重要だ。例えば、自律走行車が周囲の状況を認識できなかった場合、人々は怪我をする可能性がある。
機械学習が今日ほど身近になったことはないとはいえ、製品に組み込むには追加のリソース(開発者と時間)が必要だ。そのため、結果としてもたらされるインパクトが、実装に必要なリソースの量を正当化できるかどうかを考えることが重要になる。
ここまで、やっと氷山の一角をカバーしたに過ぎないが、この時点で、機械学習を製品にどのように適用できるかについて、より快適に考えることができるようになっていれば幸いである。

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です