paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

初心者でも今すぐ機械学習・ディープラーニングの勉強を始められるスライド11

f:id:paiza:20161130170319j:plain
Photo by PROTim Regan
こんにちは。谷口です。

最近「人工知能」や「機械学習」に関する話をよく耳にします。実際に機械学習の勉強をしている人や、機械学習に関連した研究開発の求人を探す人も増えてきたなーと感じます。弊社のITエンジニアにも機械学習を勉強中という人がいますが、特に最初の頃は難しすぎて何から手を付けたらいいのかよく分からず、とても悩んだと言っていました。

というわけで今回は

  • 実は機械学習とディープラーニングの違いがわかってない
  • 機械学習勉強したいけど仕事してると体系的に学ぶ時間がない
  • 仕事や研究で「機械学習やって」って言われそうな気配がする
  • 過去に機械学習の勉強にチャレンジしたことがあるけど難解すぎて挫折した

という方々のために、機械学習を勉強している弊社のエンジニアに、機械学習に入門した頃に役立ったスライドを聞いてきたのでご紹介します。

■機械学習とディープラーニング

ときどき機械学習とディープラーニングを混同している人がいますが、あくまでもディープラーニングは機械学習の手法の一つです。

機械学習とは、コンピューターが与えられたデータからアルゴリズムや特徴などを反復的に学び、学習したことからデータの特徴やパターンを見つけ出すという技術の分野全体のことを指します。

ディープラーニングは機械学習の手法の一つで、ニューラルネットワークという人間の脳の神経回路を元にした手法がベースになっており、アルゴリズムとしては、脳の神経細胞を模したパーセプトロンが三層以上重なって組み合わさっています。(この辺のアルゴリズムを理解しようと思ったらまず前身となっているニューラルネットワークから学ぶ必要があります)すごく簡単に言うと、データの特徴をさまざまな方面や段階から学び、勝手に深く理解してくれるという機械学習の手法で、複雑な特徴を理解しないとできない画像の判別処理等に向いています

例えば、ディープラーニング以前の機械学習であれば、「眼鏡」の画像を判別させるとなると、単に色や形、顔の目の上にあるといった情報から判別していたので、眼鏡っぽいけど眼鏡じゃないものまで「眼鏡」として判別されていたとして、ディープラーニングだともっと細かい情報を元に判別するのでより精度が高くなる傾向にある(※絶対ではない)ということです。

ディープラーニング以前の機械学習(サポートベクターマシンを使用したもの)と、ディープラーニングの分類結果で面白いスライドがあります。(※サポートベクターマシン:教師あり学習を用いるパターン認識モデルの一つ)

以下は2つとも二次元の眼鏡っ娘の画像を分類するシステムを構築したスライドですが、サポートベクターマシンの前者が64%ディープラーニングの後者が91~95%となっています。

◆Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築

www.slideshare.net

◆TensorFlowで 趣味の画像収集サーバーを作る 4月号(P11~「好みの眼鏡っ娘画像を自動で収集したい」)

speakerdeck.com


ちなみに機械学習初心者のエンジニアの方が機械学習やその手法を体型的に学ぶ場合、下記の書籍がかなりおすすめです。コードはC言語で書いてありますが、if文・for文ができれば理解できます

◆機械学習と深層学習 ―C言語によるシミュレーション―

機械学習と深層学習 ―C言語によるシミュレーション―

機械学習と深層学習 ―C言語によるシミュレーション―


あと、少し前に話題になったので見たことある方もいるかもしれませんが、このブラウザ上に可視化されたニューラルネットワークのデモが面白いです。

◆A Neural Network Playground

playground.tensorflow.org

左側でデータを作って、真ん中の「hidden layer」で隠れ層を増やして、右側のOUTPUTで結果を見ることができます。自分で触れて楽しい。

■初級~中級者程度の人が、機械学習について学べるスライド

◆機械学習に関して

◇機械学習チュートリアル

www.slideshare.net
実は機械学習って何なのか全然わからない」という段階の人向け。数式とか出てきません。機械学習って何なの?何がいいの?どんなことが得意&不得意なの?といったところから始まるので本当に入門者の人に。

◇機械学習によるデータ分析まわりのお話

www.slideshare.net
機械学習でデータ分析をしてみたい人向け。統計とかアルゴリズムとかツールの話は出てきません。データの前処理(ダミー変数とか欠損値とか正規化とか)や混同行列などデータ分析の際に知っておきたい基礎知識が詰まってます。

◇ソフトウェアエンジニアのための「機械学習理論」入門

www.slideshare.net
ビジネスにおけるデータサイエンスの役割などの例がわかりやすいです。すごくもりだくさんですが、データサイエンス入門・回帰分析・線形判別法・教師なし学習に分かれているので、知りたいところだけ見ても役立ちます。

◆ディープラーニングに関して

◇Deep learning

http://www.slideshare.net/kazoo04/deep-learning-15097274www.slideshare.net
ディープラーニングがどういうものか全体的にさっと知りたい人向け。

◇Deep Learningと画像認識 ~歴史・理論・実践~

www.slideshare.net
ディープラーニングがすごいのはわかったけど中で何がどうなってるか理解したいよ!みっちり全部知りたいよ!という人向け。みっちり長いですがわかりやすくまとめられてます。

◆機械学習に適したライブラリごとのチュートリアル的なスライド

Pythonには機械学習のためにデータを処理するライブラリ(数値演算をするためのライブラリや図を作成するためのライブラリなど……)がそろっていて、呼び出したり組み合わせて処理したり……といったことがしやすいため、多くの人が機械学習でPythonを使っています。このライブラリを使い始めるのに役立ちそうなスライドをご紹介します。

scikit-learn
  • scikit-learnを用いた機械学習チュートリアル

www.slideshare.net
scikit-learnは分類や回帰、クラスタリングなどの機能が実装されており、機械学習における定番ライブラリの一つです。

TensorFlow
  • TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)

www.slideshare.net
TensorFlowは、2015年11月にオープンソース化されたGoogleの機械学習ライブラリです。

Chainer
  • Chainerチュートリアル -v1.5向け- ViEW2015

www.slideshare.net
chainerはニューラルネットワークを実装するためのライブラリです。日本人の方が中心となって開発されています。

Theano
  • Pythonとdeep learningで手書き文字認識

www.slideshare.net
Theanoはディープラーニングライブラリの決定版?と言われております。行列演算などを行う関数が実装されています。

■まとめ

機械学習はハードルが高いと思われがちですが、チュートリアル的な感じで試しに手を動かしてみるとイメージも掴みやすいと思います。特にPythonやR言語には便利なライブラリが多く無料で提供されていますので、実装にもチャレンジしやすいかと思います。

「何を作ったらいいかわからん…」という人は、楽しそうなシステムを作っている人たちがたくさん記事を公開しているので参考になると思います。

bohemia.hatenablog.com

hakobe932.hatenablog.com

今後も商業的なサービスや研究・分析にはますます機械学習が使われ、必要不可欠な技術となっていくでしょう。現時点では想像もつかないようなすごいサービスが生まれることを期待しています。興味のわいた方はぜひ学んでみてください。

■動画でプログラミングが学べるpaizaラーニングPython×AI・機械学習入門編が登場!


動画でプログラミングが学べるpaizaラーニングでは、Python、Java、C言語、C#、PHP、Ruby、SQL、JavaScript、HTML/CSSなど、プログラミング初心者でも動画で学べる入門レッスンを公開しています。

そしてこのたび、新たに「Python×AI・機械学習入門編」が追加されました。

人気声優の上坂すみれさんによる進行役のスベトラーナ・小百合・ベレフスカヤと一緒に、実際に画像認識技術を使いながら、初心者でも機械学習を体験・学習できるレッスン内容になっています。

Python×AI・機械学習入門編は全編無料でごらんいただけます。詳しくはこちら




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

paizaのスキルチェック

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのおすすめコンテンツ

PPG proken プログラミングゲーム「初恋 プログラミング研究会〜海に行こうよ〜」 PPG Bingo プログラミングゲーム「コードレビューBINGO!!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.