チラシの裏の設計書

プログラム開発、データ分析からロボット作りまでものづくり全般を思うがままに書き連ねたブログ。

カッとなってやった。えーあい系の記事をできるだけ直してみる。

チラシの裏です。

カッとなって殴り書きしますのでご了承ください。

いや、お前も間違っとるやんけという場合はまさかり投げてください。

 

~~~~

 

ふとこちらの記事が流れてきました。

iedge.tech

機械学習周りの知識がある方ならまずタイトルをみて「見なくていいか」となる系のやつです。「”スポーツ”と”球技”の違いは?」みたいなズレた比較してるためです。

 

普通ならスルーするところですが、軽く読んで見たところ"変な教師データで学習してしまったモデルによる自動生成文章かなにか"かと思うぐらい、これでもかというほどダメな例が詰め込まれているのを見て、放置するのも悪い気がしたので弱小チラシの裏ブログで指摘と修正を行っておこうというわけです。

ぜひ先に元記事をご一読ください。 

 

ではスタート。

 

導入部分

人工知能(AI)には「機械学習」と「深層学習(ディープラーニング)」というものがあることをご存知でしょうか。現在、多くの人工知能に採用されているのは機械学習の機能です。

 == 修正案 == 

人工知能(AI)を支える技術として「機械学習」が注目されており、その中でも「深層学習」というものがあることをご存知でしょうか。現在"人工知能"を謳う様々な製品やサービスで機械学習は多く活用されています。

==

まず、人工知能機械学習・深層学習の整理からしましょうか。

それぞれの用語は元の定義も広義に使われていたり、近年のブームでぐちゃぐちゃになったりはしていますが、以下のように捉えるのが妥当かと思います。

人間の知能をコンピュータで再現したり解明したりしようとする研究分野。

いわば「概念」「目的」にあたるものです

あるタスクに対してコンピュータプログラムが経験に基づいて改善していく仕組み。

いわば「計算方針」「手段」にあたるものです。ちょっと強引ですが。

人工知能を実現するための手段として注目・発展しています。

 もっと良い言い方考察はこちら:機械学習とは何か? – 機械学習の定義と使える言い回し | POSTD

  •  深層学習

機械学習の一種であるニューラルネットワークの層を深くしたものの総称。

機械学習に基づいた具体的な「手法"群"」です。

"群"としているのは「深層学習」だけでは具体的な手法(アルゴリズム)のことは指していないからです。

 

「人間の知能を再現する」という大きな目標に対する手段の一つとして、機械学習という「入力されるデータを元に処理アルゴリズムを改善(数式の重みチューニングしている)していく手段」が有効ではないかという流れがあり、その中でも注目されているのが「識別器(計算式)を何層にも重ねて複雑な事象を表現できるようにした」深層学習というものです。 *1

これらをふまえると、"人工知能には「機械学習」と「深層学習」がある"という列挙の仕方はおかしいですし、"多くの人工知能に採用"という人工知能が商品か何かのように扱うのも不適切です。

 

 ・・・最初の2行でこれだけ書くペースで大丈夫なのだろうか。 

 

コンピュータが進化し、AIの性能が向上していくと同時に深層学習がメインになるともいわれていますが

聞いたことがありません。

そもそもぱっと見て「??」となった文章なのですが、無粋なツッコミはやめて意図を汲み取ると

 == 修正案 ==  

ハードウェアの性能向上により、計算量が膨大になりがちな深層学習を利用することが現実的になってきたため、今後広く活用されることが見込まれています 

==

ということですねたぶん。

 

機械学習」とは? まずは簡単に解説 の章

AIの仕組みを知るうえで欠かせないのが「機械学習」というものです。

そもそも「(概念や研究課題である)AIの仕組み」というのは表現としておかしいのですが、主にビジネスの現場では残念ながらAIというと「いい感じに賢く動いてくれるもの」という意味ぐらいにしか使われていないということは補足しておきます。

 

機械学習とはその名の通り、コンピュータが物事を学習していくことです。これまでの一般的なコンピュータのプログラミングでは、人間と同じように画像を認識したり言語を認識したりすることは難しいものでした。

しかし、AIにおける技術のひとつである機械学習を活用することによって、画像を認識して一定の法則に則って分類するという処理も可能になりました。

概ね言いたいことは合っています。

が、この手の記事では機械学習がさも魔法のように書かれるんですが、機械学習も「一般的なコンピュータのプログラミング」で実現されるものですので、そこは誤解なく。

 

 機械学習の基本的な仕組みは、いくつかのサンプルデータをコンピュータに認識させたうえで特徴を判別できるようにするというものです。

用語の使い方が適切ではありません。

文脈から察するにこれは後で出てくる「教師あり学習」のことを説明しようとしていると思われますので、直してみましょう。

 == 修正案 == 

教師あり学習の基本的な仕組みは、すでに答えのわかっているデータの「特徴と答えの組み合わせ」をパターン化することで、答えがわかっていないデータに対しても答えが推測できるようにするというものです。

==

 

前提知識がない場合それっぽく聞こえるかもしれませんが、これでは誤ったイメージを植え付けることになりかねません。

機械学習関連の話題では"認識", "特徴", "判別"といった単語が出てくることが多いので、一旦確認しましょう。

  • "認識"は、それが何であるかを特定する、もしくはどのグループに属するかを決定するというものです。
  • "特徴"は、その対象を表す情報です。"変数"や"属性"と言い換えるとわかりやすいかもしれません。
  • "判別"は、基準に基づいて分類する行為ですね。

文章をそのまま理解しようとすると「サンプルデータをコンピュータがこれは何であるかということを特定してから、その属性を分類できるようにする」となります。

ちょっと何言ってるかわかりません。

"いくつかのサンプルデータ"という表現も数個程度のデータを想像してしまうので表現としてよくありません。

 

このようにコンピュータ自身がデータを学習して判別可能にする仕組みを機械学習アルゴリズムとよび、基準となるサンプルデータの数が多ければ多いほど機械学習の認識精度も高くなる傾向にあります。

== 修正案 == 

このようにコンピュータ自身がデータを学習して判別するための基準を作る仕組みを機械学習アルゴリズムと呼び、教師となるデータの数が多く、質が高いほど判別の精度も高くなる傾向があります。 

==

判別可能であることが機械学習アルゴリズムなのだとしたらこのあとの「教師なし学習」の章は?ということになりますがそこは黙っておきましょう。

データ量が多いほど~というのはよいのですが、"サンプルデータ"という言い方をずっとしているのはなぜでしょうか。サンプルデータというと母集団から取ってきた一部のデータという意味合いが強くなるため単純に"データ"で良いでしょう。

 

ちなみに、近年になってAIが大きな盛り上がりを見せているのは、ビッグデータを活用できるようになったという背景があるためです。スマートフォンとインターネットの普及により、あらゆるデータを短期間で収集することが可能になりました。データの分母が大きければ大きいほど機械学習の精度は上がるため、ビッグデータによって精度の高いAIが続々と登場しているのです。

 

ここも言わんとしていることはわかるのですが、もうちょっと正確に書いてほしいものです。

== 修正案 == 

ちなみに、近年になってAIが大きな盛り上がりを見せているのは、コンピュータやネットワークの進歩によりこれまで収集や保持、高速な処理が困難だった大容量のデータを活用できるようになったためです。

==

AIの盛り上がりはハードウェアの進化(データを蓄積するストレージの大容量化、高速に処理できる基盤が安価になった)やインターネットの普及があるのはその通りです。・・・この文脈でスマートフォン

"あらゆるデータを短期間~"は、実務にあたってる方々からは大いに反論があるかとは思いますが、一般大衆向けの記事ならまぁいいでしょう。

"データの分母が~"というところは・・・分母??分子は何でしょうか?"量"や"サイズ"なら理解ですが、それとも"母数"を誤用的な意味で使いたかったのかな、と思ってしまいます。

 

このほかにも、サンプルのデータがない場合に近い性質のデータ同士をまとめるといったような機械学習のパターンもあり、用途に応じて幅広く活用できる技術でもあります。

これを読んで、"サンプル"と呼んでいるものが正解ラベル付きの教師データのことであることがわかりました。記事読む人、わかるのかこれ?

== 修正案 == 

この他にも、何かを判別するというものではなく、データ同士の類似性を用いてグルーピングするというような機械学習のパターンもあり、幅広く活用できる技術です。 

==

また、後の章でも出てきますが「教師データがないから仕方なく教師なし学習をやる」と読み取られかねない書き方がありますがそうではなく、目的が異なるものです。(実務上では教師データないから仕方なく、というのもないわけではないですが。)

機械学習の「教師あり/なし学習」について の章

機械学習における「教師あり学習」とは?

機械学習の方法には主に「教師あり学習」と「教師なし学習」という2つのパターンがあります。今回は初めての人でも分かりやすくするために、トランプカードを例に出しながら解説してみます。

トランプカードの例は見たことがないので期待(白目)

教師あり学習とは一定のサンプルデータをもとにデータ処理を行う機械学習の方法です。

== 修正案 == 

教師あり学習とは正解ラベル付きデータ(教師データ)を使ってパターンを構築するモデルです。

==

ぐらいにしよう。

そして以下トランプの例

例)自分の手元に「ダイヤの10」というカードがあったとします。ジョーカーを除いた残り51枚のカードから同じ数字の3枚を集めたい場合、あらかじめコンピュータに対して「10」という数字のカードを条件として分類するように機械学習のモデルを作成します。


すると、機械学習アルゴリズムによって数字ごとにカードが分類されます。このとき、数字ではなく「ダイヤ」という絵柄をキーにした場合は、10という数字ではなくダイヤの絵柄に注目して分類が行われることになります。

 機械学習の要素が何もありません。10という条件で10のカードを分類するのはなんの変哲もないif文(条件分岐)やselect句(抽出)のたぐいですね。

機械学習はむしろこの例の説明とは真逆で「どういうキーを使ってどういう基準で分類すべきか」という条件を人間が指定せず、正解ラベルから自動的に組み立てるものです。

トランプの例は無理があるので、犬猫分類を考えてみます。

== 修正案 == 

自分の手元に動物の写真があるとします。やりたいこととして、新しく動物の写真を撮ったときそれが「猫なのか犬なのかどちらでもないのか」を自動的に判別するというものを考えます。例えば、「色が白ければ猫、茶色なら犬、それ以外は他の動物」というように判定基準を決めて分類するものをルールベースの手法と言ったりします。教師あり学習は、手元にある写真に「この写真は猫」「この写真は犬」「この写真なその他」というように写真と導きたい答え(教師)が紐付いたものを教師データとして学習し、判別したい写真を入力すると「猫or犬orその他」を適切に出力するようなルールを作るという手法です。答え(教師)から学んでいくということで教師あり学習と呼ばれているものです。

==

 

 このように、サンプルデータとなるもの、すなわち「教師」が存在し、それの条件と合致するものを選ぶのが「教師あり学習」の方法です。

これまでの話の通りいろいろと違います。

== 修正案 == 

正解がわかっているデータが存在し、それらのデータから規則性を見出す(学習する)のが「教師あり学習」の方法です。 

==

この記事では、「サンプルデータ」は「教師データ」の意味で使われており、「教師」は「分類ルール」という意味で使われているようです。

用語だけでなく、「条件と合致するものを選ぶのが教師あり学習」という説明も違います。

 

機械学習における「教師なし学習」とは?

トランプカードが手元に一切ない場合、AIはどのような動きをするのでしょうか。いわば教師であるサンプルデータがないため、何を基準に分類すれば良いのか難しいところです。

やはりサンプルデータと呼んでいるのは教師データのことのようです。

「AIはどのような動きをするのでしょうか」という書き方をすると、さもAIという万能の何かがデータに応じて異なる動きをするように見えますが、「何を目的にどのデータを使ってどのようなアルゴリズムを用いるか」を決めるのは人間の仕事です。「分類がしたいので教師なし学習をする」という選択は人間が行います。

もちろん後述する強いAI・弱いAI議論のなかで人間以上に全ての物事に汎用的に対応できるAIの話なら別ですが、少なくともこの記事でそのような議論はされていません。

 

この場合、AIは「数字別」、「図柄別」、「色別」といったようにそれぞれのグループにまとめる「クラスタリング」という仕事をします。基準とするべきサンプルデータがないため、とりあえず近似値のデータ同士をグループ化することで見やすくまとめることが可能です。

 クラスタリングと呼ばれる手法は教師なし学習の代表的なものではありますが、あくまでグルーピング(分類)をするという目的のもと、行うものです。データの性質をつかってグループ分けするというのがこのクラスタリングという手法のやることであるため教師というものを必要としないというだけです。

例も適切ではなく、「数字別」「図柄別」「色別」というのはトランプがすでに持っている情報そのものであり、それをまとめることの意味があるのでしょうか。「ハートとスペードにカードを分類しました」ってなってもそれもまた単にif文かselect句か、、、という話ですね。

トランプの例でクラスタリングを語るなら「人間の感覚として"ハート5"と"ダイヤ5"はそこそこ似てる気がするけど"ハートの2"と"クローバーのキング"は別っぽいよね」というのをグルーピングするような例にしてはいかがでしょうか。(それでもトランプだと例がキツイな。)

また、文章全体で言えることですが専門用語(とおもわれるもの)を全く適切に使われていないので注意が必要です。

「近似値のデータ同士をグループ化」と書かれていますが近似値というのは「真の値に近い値」であって、文章の意味が通っていません。

 

ちなみに、教師なし学習はこの後に紹介する「ディープラーニング」の基本となる考え方でもあります。

違います。

ディープラーニングの基本となるのはニューラルネット、もっと辿ればパーセプトロンのような考え方であり、むしろ教師あり学習の代表格です。

 

この章はズレすぎてて、直しすらできない。。。

機械学習ディープラーニングとAIとの違いは? の章

機械学習と並んでディープラーニングという言葉が比較対象となることがあります。ディープラーニングを日本語に直訳すると「深層学習」という意味になりますが、機械学習と何が違うのでしょうか。

比較対象にしないでください。違いについては上のほうのまとめをどうぞ。

== 修正案 == 

機械学習の中でディープラーニングという単語が登場することがあります。ディープラーニングを日本語に直訳すると「深層学習」という意味になりますが、どのような特徴があるのでしょうか。

==

機械学習ディープラーニングの違い

機械学習ディープラーニングの決定的な違いは、一部分を見るのか全体を見るのかというポイントにあります。

意図が読み取れないのですが、違ってるということはわかります。

そもそも機械学習は方法論であり、ディープラーニングはその実装の一つです。比較としてズレています。

先ほどのトランプの例で説明すると、機械学習の場合は「数字」、「図柄」、「色」のいずれかを見て分類するということを人間が学習させなければなりませんでした。しかしディープラーニングの場合、人間から指示は一切出しません。

機械学習とはその名の通り、コンピュータが物事を学習していくことです。」ってさっきご自分で書いてたじゃないですかー!

あと、人間からの指示はいっぱい出します。

コンピュータがみずからトランプの特徴を一枚ずつ読み取り、52枚全てのカードの特徴を自動的に見分けていきます。そのなかで数字や図柄、色といった特徴をつかむようになるという仕組みです。まさにこれは人間の頭脳の仕組みと似ています。

人間の脳の学習、つまり生まれたばかりの赤ちゃんが学んでいくところを想像していただきたいのですが、世の中に存在するものを1つずつ読み取って自立していくわけではなく、大人たちの手本となる行動(教師データ)を真似することで学習したり、いろいろなものを口にいれてみて食べれる/食べれないやおいしい/おいしくないをパターン化していきます。それと似たような動きをするのがディープラーニングという話です。いや、ディープラーニングではなく教師あり学習の動きというのが正しいです。

 

しかし、現時点で人間の脳と同じような真のディープラーニングは実用化されていません。そもそも人間と同じ脳の仕組みをAIとして再現すること自体も難易度が高く、まだまだ先の将来になる可能性が高いといわれています。

人間の脳がディープラーニングだと言わんばかりの書き方ですが、ここも色々勘違いしているような?

まず「パーセプトロン」や「ニューラルネット」というような命名があるように脳神経の仕組みに着想を得て進歩して行ったという経緯はありますが、脳の機能を丸々再現しようとしているようなものでもないですし、脳の仕組みが解明されているわけではないですし。。。

「脳の仕組みをAIとして再現すること自体も難易度が高く」とありますが、難易度云々とかの議論で収まるレベルの話ではない気がします。また「真のディープラーニング」ってなんでしょう?強いAIのこと言ってるのかな?ここの文章はそういう話をしていると仮定して補足書いておきます。

強いAI・弱いAIという分類方法があります。

  • 強いAIとはいわば人間の知能の再現で、考える力や学ぶ力をもつ汎用的なもの。ドラえもん
  • 弱いAIは特定のタスクに特化して、人間と同等以上の性能を発揮することを目指すもの。

一昔前に「人工知能」といえば強いAIのようななんでもできるロボットを多くの人が想像しました。近年の流行の主役は弱いAIのほうで、ボードゲームでプロに勝利したり、画像認識というタスクで人間よりも正確だったりしました。

弱いAIと強いAIは単純に弱い→強いに進化するものではなく、むしろ別物の課題と捉えるほうが自然です。(このあたりは専門家でも意見が分かれる)

 

ここの章も直しとかってレベルじゃないので。 

機械学習人工知能(AI)の関係

機械学習はAIのなかの「ひとつの機能」といえます。AIが人工知能としての役割を果たすために人間の言語や画像などを認識し、判定するための仕組みです。

なんか、文章中でもAIと機械学習の意味ころころ変わってません?

タイトルが人工知能(AI)となっていて、人工知能=AIを示しているのかとおもったら、「AIが人工知能としての役割を果たす・・・」となってるのは、文章として気になりますが、文章の内容について言いたいことは人工知能機械学習ディープラーニングの違いの部分をご参照ください。

機械学習のさらなる進化系としてディープラーニングがあるというイメージで問題ありません。

問題ありますやめてください。

 == 修正案 == 

機械学習人工知能の取り組みの中で進歩して行ったひとつの技術と言えます。人間の言語や画像などの認識が行えるようになっています。さらに近年ではディープラーニングという複雑な事象に対しても高い認識精度を出せる技術も注目されています。

==

ぐらいの添削で許してください。

機械学習で可能になること

ディープラーニングとは違い、機械学習は人間が何らかの指示やデータを与えないと思うように正しく機能してくれません。しかし、指示を与えるからこそリクエストに的確に応えることができます。

ここは「ディープラーニング」「機械学習」ではなく、「ルールベースのプログラム」に置き換えましょう。そのほうが自然です。

 

たとえば、ある商品の購入者をビッグデータとして取り込み、特定の客層を抽出して分析を行うこともできます。また、クラスタリングによって全体の客層の傾向を把握することも可能。統計データとして人間の手でまとめるよりも迅速で正確なデータ分析が可能になります。

こちらの例も「プログラム」もしくは「統計処理」の話ですね。

あと無理にビッグデータって言葉いれなくていいです。データでいいです。

 

機械学習の代表的な例として挙げられるのはRPA(Robotic Process Automation)です。パソコンを使った事務作業を行うロボットのひとつで、プログラミングの専門的な知識がなくても仕事を覚えさせることができます。

これまた困ったことに流行りの言葉を入れてみましたという感じの文章ですね。

機械学習の例にRPAを挙げるのは適切ではありません。RPAは事務作業のような定型的な作業を機械に代用させることです。

RPAを実現させる手段の一つとして機械学習が使われることはありますが、機械学習の例がRPAかと言われると、比較の粒度も方向も疑問です。

それにしても機械学習を人間が指示しないとだめといったり知識がなくても覚えさせられると言ったり、理解が曖昧な様子ですね。

 

AIの技術者がいない中小企業や実務を担当する部署であっても、手軽に導入できるシステムとして多くの企業からRPAは注目されています。

これ、AI・機械学習にも言えるんですが、なんでもできそう感を煽っておいて、信じて飛びついたお客さんが失望して退場していくのはもはや日本の伝統芸ともいえるものなので、"AIの技術者がいない中小企業"の方こそ上辺の理解ではなく正しい仕組みの理解をしていただきたいです。

というか多分それもきついと思いますので信頼できる技術者や企業とご相談することをおすすめします。

 

(導入事例は飛ばして)

機械学習の現状と未来 の章

これまでコンピュータにできることは限られており、人間がプログラミングなどの指示を与えなければならないとされてきました。

しかし、現在ではコンピュータ自らが過去のデータと照らし合わせながら独自に判断することが可能となっています。参考となるデータが多ければ多いほどコンピュータは学習し、その精度も高くなっていきます。

 過去のデータと照らし合わせて判断するようにプログラミングなどの指示をコンピュータにしていますからね。

現時点において、機械学習は人間のルールによって動作するものです。しかし、コンピュータの性能が上がりAIが進化していくと、やがて機械学習ではなく深層学習(ディープラーニング)という領域に突入することになります。

コンピュータの性能によりAIが進化するものではありませんし、機械学習と深層学習の関係はさんざん書いてきた通りです。

おそらく筆者の方は深層学習という単語の漢字だけ見て、「めっちゃ考えるコンピュータ」ぐらいの理解してるなという印象です。

人間と同じような思考をもち、業務の効率化の提案なども可能になるとされている深層学習は、遠くない将来に私たちの前に登場するといわれています。

少し前の章で

そもそも人間と同じ脳の仕組みをAIとして再現すること自体も難易度が高く、まだまだ先の将来になる可能性が高いといわれています。

とあるのと文章内のトーンぐらい合わせてほしいものです。

機械学習と深層学習のどちらが優れているかではなく、用途に応じて使い分ける能力が、今後のAI活用の中で重要な課題となるはずです。

ここもルールベースのものと比較するならまだわかるのになぁ。

人間にも得意なこと、不得意なことがあるように、人口知能においても両者をうまく使い分けていくことが必要とされる時代が間もなくやってきます。

こんにちは、"人口"知能警察です。

ここまできれいにオチをつけてくれると、炎上狙いの釣り記事なのかなということも想像してしまいます。また、文章後半部分からは前半の間違いに重ねる形で議論が続いているため、書いてることがめちゃくちゃすぎて添削すらできなくなってきました。

 

人工知能機械学習の基本を抑えてる人にとってはこういう記事は無視すればいいだけなのですが、新たに学びたい人がなんとなく理解しやすそうだからということで参考にしてしまうと、間違った認識で会話していくことになり延いては業界やエンジニアの疲弊に繋がるので注意していただきたいなと一応一業界人?ではある(と自称している)私からの愚痴なのでした。

 

〜〜〜

夜中のテンションで書いたにもかかわらず、ずいぶんと疲労のたまる作業でした。

えーあいなんとかしてー。

 

--

*1:無理やり日常生活的な例に当てはめるとすると、「健康になりたい(人工知能)」という目的のために「スポーツをすればいい!(機械学習)」というブームが起こり、その中でも「球技(深層学習)」がすごいらしい、となっているイメージです。

健康になるためにスポーツ以外のことをすることだってありますし、健康目的以外でスポーツすることだってあります。球技以外にもスポーツはたくさんありますし、筋力をつけて健康になりたいなら球技よりも他の方法を勧めたほうがいいわけです。

・・・というような例を考えたんですが、これも変に誤解しそうなので注釈に持って行こう