機械学習って何をするの? 手描きの絵をどうしてパソコンは理解できるのか、その仕組みを考えてみる(英語学習セクション付き)
そもそも何を「学習」しているの?
まず機械学習というのは文字通り「機械に学習させる」ものです。ただ、人間の脳みたいに何でも理解できるようになるわけではなく、1つの学習で1つの”こと”ができるようになります。この”こと”を「タスク」と呼んでいます。
例えば「自分で描いた絵が何であるかを判別する」という”タスク”を機械にやってもらいます。そこで皆さん、この絵が何の絵であるか分かりますか?
なんとも微妙な絵ですよね。本人(ハイ、私です)はネコのつもりで描いているのですが、キツネにも見えるし、ネズミなのかもしれません。人間はこうやって経験から判断できますが、コンピューターにはその「経験」というものがありません。
そこでその経験をマシンにぶち込んでやるのが「学習」なのです。
例えばDoodleNetという手書きの絵を認識する機械学習モデル(モデルは後で説明します)があり、そこでは5千万枚もの手描きの絵を”機械学習”させ、どんな絵がどのようなモノなのかを教え込みました。
この膨大な「教え込み=学習」の結果、経験を搭載した「モデル」というものが出来上がります。モデルには一つのことを判断する「経験」が詰まっているので、新たに手描きの絵を差し出すとそれが何であるか教えてくれます。
機械学習すると”経験・知識”が「モデル」となって生成される
つまりモデルに対して、「これ何か教えて」と絵を差し出すと(入力)、それが何であるかの結果(出力)を返してきます。プログラミングで言えば関数のInput(Parameter)とOutput(Retrun)と同じですね。
もちろん機械もこの奇怪な絵は確実に何であるかは分かりません。そこで、いくつかの「考えられる対象物」とその「可能性」を示してきます。この対象のことを「ラベル」と言い、可能性を「確率」と言います。
どんなものを機械学習できるの?
大量のデータがあれば何でも学習できます。皆さんの身近には様々な機械学習された機能があるのはご存知だと思います。
● 声を機械学習 ⇒ 「Siriなどの音声認識」
● 発話を機械学習 ⇒ 「Siriなどがしゃべる音声合成」
● 顔を機械学習 ⇒ 「カメラなどの顔認識」
このほかにもスパムメールを自動判別したり、英語のスペルチェックや、日本語の文法チェックなど、数多くの導入例があります。
自分でもモデルって作れるの?
はい、簡単に作れます!機械学習で大変なのはデータの準備です。それでも簡単にデータを入力してモデルを作れるサイトがあります。機械学習のモデル作成を体験してみたい方はここをチェックしてみてください。
ここで「画像プロジェクト」を選んでみてください。
ここではパソコンのカメラで何か写真を撮ったり、あるいは既存の写真を指定することで機械学習を実行することができます。あまりピンとこないかもしれませんが、実際にやってみるとよくわかります。
例えばカメラでじゃんけんをやるシナリオを考えてみてください。まず、サイトにクラス1、クラス2というのがあります。その名前をグーとパーに変更してみてください。そしてグーの方ではカメラに向かって手のグーのサインをして写真を撮ります。一回のクリックで何枚か撮られることもありますが、2回目以降は写真を撮らないときもあります。それは、同じような写真だからです。
コツは、ちょっと角度を変えたり距離を変えたりとバリエーションを持たせることです。そしてパーに対しても同じような形で写真を撮ってみてください。
写真が何枚か取れたら「トレーニング」をします。これで「グーとパーを判別するモデル」ができます。トレーニングが終わったら、右のボックスで新たに写真を撮ってみてください。結果としてグーとパーのいずれの確率が高いかを示してくれます。
何となく想像がつくと思いますが、このモデルを使うとパソコンやスマホとじゃんけんをするアプリなど簡単にできそうですよね。
ごく簡単な機械学習の応用例ですが、実際中で何をやっているのか、このTeaching Machineを使うとよくわかると思います。
【英語学習】機械学習を英語で理解してみよう
さて、機械学習の基礎が分かったら、今度は機械学習について英語で聞いてみましょう。
手描きの絵が何であるかを言い当てるための機械学習は「画像分類(Image Classification)」と呼ばれています。それに対して、絵や写真の中にどんな物体があるかというのを言い当てるのが「物体検知(Object Detection)」と呼ばれています。この二つを英語で簡単に説明したビデオがあるので、機械学習と英語を勉強してみたい方、是非このリンクされたYouTubeビデオを聞いてみてください。
リンクをクリックすると、What do I mean by ... と言いながら、ホワイトボード上で物体分類と物体検知の違いを説明しているところからスタートします。その解説部分だけ聞いてみてください。
このビデオは、ニューヨーク大学の先生で、Coding TrainというYouTubeチャンネルをやっているDaniel Shiffmanさんです。
以下に機械でディクテーションしたテキストを示しておきます。参考にしてみてください。
What do I mean by object detection? So far I have covered image classification. Meaning we have an image, maybe it has a cat in it. And when that image is sent into the machine learning model, in the case of the previous examples, a model called Mobile net, I get back a list of labels and confidence scores and most likely in this case I would get. The label cat with hopefully a confidence score of something like 95%. There might be some other guesses with lower confidence scores, but ultimately the goal is to have a single classification. A single label come out and be assigned as the result of the prediction of this image. Now what happens in the case of? Object detection. Let's say I have this same image. An object detection model will not only label something in the image but give a bounding box as to where that object it detects is. So instead of just saying this image is classified as cat and object detection model will say even this image, there is an object of type cat. That is located at a particular. XY locations with a particular width and a particular height. The model will also return a confidence score for how certain it is that there is a cat at this exact location, so maybe that would also be something like 95% and what's special about object detection instead of just classifying the image with one label here? If you're detecting an object in an image, it could detect. More than one thing. So maybe there is also I don't know. I'm drawing the rest of the cat. Maybe there's also a dog. That is my dog. If the images of a cat and a dog. We could get two bounding boxes. On the second one with the labeled bug and another....
参考までに、YouTubeビデオなどから英語の書き起こしをする方法については次のnote記事をご覧ください。
この記事が気に入ったらサポートをしてみませんか?