post Image
機械学習について

機械学習について書きます

これから機械学習やその他色々について得た知識を
復習and記事作成の練習and個人の備忘録としてまとめていきたいと思います!

記念すべき第一回として、
まずはメインの内容である「機械学習とは」といったところから始めます!

⚠︎※※注意※※⚠︎

・出来るだけ専門知識のあまりない人に対して、分かりやすく書くことを目標にしています。
 そのため、厳密に言うと間違っている部分があると思いますがご容赦ください。

・また、ネットで調べたレベルの知識がほとんどなので、
 ”厳密に言うと”レベルではなく間違っている箇所があるかもしれません。。
 その場合は非常に申し訳ないです。指摘していただけると幸いです!

機械学習とは?

wikipedia曰く、

械学習(きかいがくしゅう、英: machine learning)とは、人工知能における研究課題の一つで、
人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことである。

らしいです。
つまり、

“人工知能という大きな枠組みの中の一部分で、人間が自然に行なっている学習の機能を、
コンピュータの圧倒的な情報処理能力を利用し、複雑かつ膨大なデータでも可能にしたもの”

と僕は解釈してます!

基本的に人間で出来ることは人間でやるほうがいい場合も多くあると思います。

例えば画像認識。
“その写真が人物像であるかどうか”など、人が目で判断するとかなり特殊な場合を除いて、間違えることではありません。
が、機械が判定するとなるとそうはいきません。

人間だと当たり前にできてしまうことでも、
機械にとってはただの色の集合、もっと言うと数字の集合としか認識できないため、間違えてしまうことも大いにありえることなのです。

では何故機械でしようとするのか。
その理由は至極単純で、”膨大な量のデータでも疲れることなく自動でやってくれるから”です。

数百枚~数千枚程度の画像なら、なんとか人間でも全部見て、一つ一つを判別することができます。
かなりしんどいですが。笑

しかし、数万枚やそれ以上の画像となると、人手で行うのは実質不可能だと思います。
そういう時に、一切疲れることなく大量の処理を行ってくれる”機械学習”が非常に役に立つ、というわけです。

その他にも、データを偏見なく純粋に数字として見るため、人間では気づきにくい何かを気づかせてくれたりもします。

“機械学習”という単語だけで、”何でもできそう”という幻想は抱かず、
良いところ悪いところを十分理解した上で、
人が出来ないことを上手に機械学習を利用して解決していく、ということが求められていきます。

機械学習の種類

機械学習には種類があります。
よく知られているのは、”教師あり学習”と”教師なし学習”ですかね。

その他にも、”半教師あり学習”や”強化学習”などが存在しますが、
世間で言われている機械学習の多くは、初めの2種類、特に”教師あり学習”だと思って問題ないと思います。

教師あり学習

教師あり学習は、その名の通り教師がいる学習です。

大体の場合、教師は人間です。

機械に対して人間が、
「これが正解で、これが間違い、・・」
「この場合の値は○○で、こっちの場合は××、・・」
と教えてあげることで、
答えの分からないデータに対しても、何らか答えを推測できるようになります。

これが”教師あり学習”です。

雰囲気を掴むために図で説明すると、

スクリーンショット 2017-06-05 10.23.54.png

このような教師データがあって、
新しく、ラベルが不明(Aに所属するのかBに所属するのか不明)なデータが入って来た時に、
所属するラベルを判定する、というのが教師あり学習です。

スクリーンショット 2017-06-05 10.25.32.png

今回の場合、新しいデータは、ラベル”A”に所属すると予想されます!

“教師あり学習”の中でも種類に分けられ、
主に、
求める答えが数値である”回帰”と、
求める答えがラベルである”分類”の二つがあります。
上記の図の話は”分類”になります。

教師なし学習

それに対して、教師なし学習とは、
答えがないデータから何かしらの法則を見つける、といった感じのものです。

前述の、
“データを偏見なく純粋に数字として見るため、人間では気づきにくい何かを気づかせてくれたり”
というのは教師なし学習にあたります。

これも図で説明すると、

スクリーンショット 2017-06-05 14.25.48.png

ラベルのついていないデータを

スクリーンショット 2017-06-05 14.25.23.png

のように、近いものを一つの集合とみなすのが、”教師なし学習”です。(画像使いまわしですみません。。)

教師あり学習と違って、「これがAだ、Bだ」というような答えは与えられておらず、
分けられたデータを見て、人間がラベルをつけます。

機械がデータをただ分けただけなので、後で人間が見た時に、
その集合を表すラベルをつけることが出来ない場合も存在します。

“教師なし学習”は、何らかの基準で”似たもの”を集める技術と言えます。

“教師なし学習”にも”クラスタリング”や”異状検知”などといった種類があります。

まとめ

・機械学習は、人工知能の一分野で、”人間が自然に行っていること”を機械で実現しようとしたもの。

・人間で出来ることは人間でやったほうがいい場合も多い。

・大きく分けて、”教師あり学習”と”教師なし学習”がある。

・”教師あり学習”は、機械に答えを与えることで予測を可能にしたもの。

・”教師なし学習”は、何らかの基準でデータの中の”似たもの”を集めるもの。

あとがき

いかがだったでしょうか??

あまり詰め込みすぎるのはどうかと思うので、
第一回はこれで終わりたいと思います!

次回からは更に詳しく、手法について一つずつ説明していきたいと思います。
ここまで読んでいただきありがとうございました!


『 機械学習 』Article List
Category List

Eye Catch Image
Read More

Androidに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

AWSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Bitcoinに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

CentOSに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

dockerに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

GitHubに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Goに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Javaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

JavaScriptに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Laravelに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Pythonに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Rubyに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Scalaに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Swiftに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Unityに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Vue.jsに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

Wordpressに関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。

Eye Catch Image
Read More

機械学習に関する現役のエンジニアのノウハウ・トレンドのトピックなど技術的な情報を提供しています。コード・プログラムの丁寧な解説をはじめ、初心者にもわかりやすいように写真や動画を多く使用しています。