見出し画像

機械学習は万能じゃない!じゃあいつ使えばいいの?

たつひこです!

この前「機械学習って万能じゃないって言われてるじゃん、じゃあいつ使えばいいの?」と友人から聞かれました。

僕の友人が言うように、機械学習は万能ではありません。機械学習を使わないほうが、お金も時間も節約できるときだってあります。

一方で、機械学習を導入することで売上が何倍にもなることだってあります。

機械学習は技術です。だから、使いどきを意識しないといけません。

「紙を切りたい」だけなのに、「チェンソーを持ってくる」人はいないですよね。もし、チェンソーを持ち出して来た人がいたら「それは危ないよ! 別の手段にしなよ!」とか「はさみで十分じゃん!」などと、止めると思います。

チェンソーは、はさみに比べて高価だし、扱いが難しくて危ないので、止めるんです。技術も同じです。問題の性質を見極めて適切な技術を選ぶべきですね!

機械学習というのは、過去の経験をつかってプログラムが判断を下す手法のことです。

いままでのプログラムとはどう違うんでしょう?

算数で 1+2=3 のようにルールで明確に決まっていてプログラムが簡単に作れるなら、機械学習を使う必要はありません。

「信号が青なら渡れ。でも、車が来ていそうだったら渡らずに様子見する」という、一般常識もルールで簡単にプログラミングできます。

しかし、信号の画像から青信号なのか赤信号なのか判定したいとなると簡単にルール化できません。たとえば、夜中と昼間では信号の見え方は大きく違いますし、雪の降る地域と降らない地域では信号が縦か横か、配置だって違います。

いろんな信号の見え方があるのにもかかわらず、私たちは信号の判断を誤りません。

それは経験を使っているからです。

この経験をコンピュータに導入しようとして生まれたのが、機械学習という分野です。

本記事では、エンジニアじゃなくてもわかる機械学習の使いどきを書いてみます。

1. 速度を求めないとき

2. 画像や音声の複雑なタスクを扱うとき

3. 大量のデータがすでにあるとき

4. 大量のデータを処理する必要があって、多少の間違いを許容できるとき

1. 速度を求めないとき

機械学習はたくさんの計算をしなければならないので、速度が遅くなります。推論だけで100ミリ秒~10秒くらいはかかります。学習には数時間~数日はかかります。

2. 画像や音声の複雑なタスクを扱うとき

画像や音声などの非構造データを扱うときは、機械学習のほうが得意です。これまでルールベースで作られてきたアルゴリズムではできなかったことが、機械学習によって解かれています。

3. 大量のデータがすでにあるとき

機械学習は経験を使った手法であると説明しました。経験を学ばせるためには、大量のデータが必要です。画像であれば1つの分類に対して少なくとも1000件以上は必要だと考えておくといいでしょう。

4. 大量のデータを処理する必要があって、多少の間違いを許容できるとき

経験を使う性質上、多少の誤りが生じます。もし、仮に誤りが一切許せないのであれば、コンピュータだけに頼るのではなく人間が確認するフローを入れる工夫が必要です。

一切間違えない処理を作るのは、費用対効果が悪い上に、実現可能性がほぼありません。人間でも間違えることだってあるので、誤りのない大量データを用意することも困難です。

また、忘れてはいけないのが誤りの種類です。正解を不正解とする誤り、不正解を正解とする誤りです。この問題はトレードオフなので、どちらを少なくしたいか考える必要があります。

機械学習の活用は難しいですよね

機械学習の使いどころって難しいですよね。

ぼくのクライアントでも

「機械学習が流行っているけど、どういうことができるのかわからない」

といった人が多いです。

それは機械学習が従来の技術と

普段は、本業でエンジニア(サーバーサイド, 業務効率化)副業で機械学習案件を

最近は、機械学習のPoC案件と実装案件を回しています!

私は機械学習の専門家ではありませんが、業務効率化や機械学習を活用どころを見極めることが得意です。

つい先日も、クライアントから「その発想なら精度も高くいけそうだね!」とお褒めいただきました。

機械学習をやる前に気をつけることはこちらの記事に書きました。




この記事が気に入ったらサポートをしてみませんか?