徹底解説!scikit-learnを使った教師あり・なし学習とは
scikit-learnを使った教師あり・なし学習について詳しく解説しています。教師あり・なし学習の手法とその表示グラフも紹介しているので、ぜひ参考にしてチャレンジしてみてくださいね!
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、教師あり学習と教師なし学習について解説します。
ぜひ、この記事を参考に、教師あり・なし学習にチャレンジしてみてください。
なお本記事は、TechAcademyのオンラインブートキャンプ、AI講座とデータサイエンス講座の内容をもとに作成しています。
今回は、scikit-learnに関する内容だね!
どういう内容でしょうか?
scikit-learnを使った教師あり・なし学習について詳しく説明していくね!
お願いします!
教師あり学習とは
教師あり学習とは、正解やより良い方法を膨大なデータとして用意しておき、その正解を元にコンピューターが学習することで、コンピューター自身を成長させる学習方法です。
Googleで開発されたAlphaGoという深層学習(ディープラーニング)により、世界最高峰のプロ囲碁棋士に勝利したプログラムがあります。
このAlphaGoのうち、第3世代までの、AlphaGo Masterは教師あり学習を元に、自己学習を繰り返した結果、プロ棋士に勝てるようになりました。
教師あり学習の手法
ここでは、scikit-learnを使用した教師あり学習の手法とその表示グラフを紹介します。
Liner Model(線形回帰)
Logistic Regression(ロジスティック回帰)
Support Vector Regression(SVM)
Perceptron(パーセプトロン)
Decision Tree Regression(決定木回帰)
Rondom Forests(ランダムフォレスト)
Ada Boost
KNeighbors
Neural Network(ニューラルネットワーク)
教師なし学習
教師なし学習といっても、最初の段階で教師あり学習のように、正解の大量のデータを教師として学習する部分が無いだけであり、基本的なルールは学習する必要があります。
基本ルール部分を学びますが、その部分は教師として考えないという理論です。
教師なし学習では、基本ルール内で勝つために、自分自身と戦い続けることで、性能を上げていきます。
AlphaGo Masterの次に開発されたAlphaGo Zeroは、教師なし学習を元に発展しました。
AlphaGo Zero では、ルール以外の知識は全く与えずに強化学習を行うことで、40日後に、AlphaGo Masterに89勝11敗しました。
つまり、AlphaGo Zeroは世界最強の囲碁棋士に40日間で成長することができたということです。
ここでは、scikit-learnを使用した教師なし学習の手法とその表示グラフを紹介します。
K-means(k平均法)
PCA
教師あり学習と教師なし学習の違い
大きな違いは、教師あり学習では、正解や過去の模範例を教師として考え利用する点です。
教師なし学習では教師にあたる、過去の模範解答データは存在しません。
scikit-learnとは
scikit-learnは、Pythonの機械学習ライブラリです。「サイキット・ラーン」と読みます。
scikit-learnはオープンソース(BSD license)で公開されており、個人/商用問わず、誰でも無料で利用することができます。
scikit-learnは、多くの機械学習アルゴリズムが実装されており、どのアルゴリズムでも同じような書き方で利用することができます。
また、サンプルのデータセット(トイデータセット)が付属しているため、インストールしてすぐ機械学習を試すことができます。
機械学習のライブラリ!scikit-learnとはについての記事も参考にしてみてください。
他のライブラリの紹介
世界全体
Google Trendsでの調査結果です。
世界全体で見ると、次の順番で人気があるようです。
Keras TensorFlow Pytorch
TensorFlowよりもKerasの方が検索トレンド上位のようです。
これら3ライブラリ以外のライブラリも調査しましたが、3ライブラリと比較すると検索料が少なく、横線として表示されました。
そのため、3ライブラリ以外の検索順位は割愛しています。
日本全体
日本全体で見ると、次の順番で人気があるようです。
TensorFlow Keras Chainer Pytorch
日本では、KerasよりもTensorFlowの方が検索トレンド上位のようです。
Chainerが3番目に人気があるのは、やはり日本企業の株式会社 Preferred Networksの存在が大きいと思います。
これら4ライブラリ以外のライブラリも調査しましたが、4ライブラリと比較すると検索量が少なく、横線として表示されました。
そのため、4ライブラリ以外の検索順位は割愛しています。
ライブラリまとめ
TensorFlow
サポート
特徴
Googleがオープンソースで後悔しているディープラーニングのライブラリです。
Googleで実装され、AlphaGo Zero でも利用されているため、その実証効果は世界的に認められています。
Tensorとは多次元データ配列のことを意味します。
TensorFlowは多次元データ配列を計算し、ディープラーニングを行うためのライブラリです。
使い方を解説!Googleが開発したTensorflow(テンサーフロー)とはについての記事も参考にしてみてくださいね。
Keras
サポート
特徴
Pythonで実装されています。
深層学習のプロトタイプを作成する場合に非常に向いています。
Chainer
サポート
特徴
日本国内の株式会社 Preferred Networksが開発・サポートしています。
日本企業が関わっているため、非常に多くの日本語情報が存在します。
また、渋谷にオフィスが有るためディープラーニングに関する技術を知りたい日本人にとっては、最も身近なライブラリになりそうです。
Pytorch
サポート
特徴
Torchというフレームワークを提供していたチームが提供しています。
Chainerをフォークしたという話もあります。
Torchでは、Luna言語を使用していましたが、PytorchではPythonを利用します。
facebookやtwitterやNvidiaという大手企業がデベロッパーになっています。
Cognitive Toolkit
サポート
特徴
Microsoftが開発しているディープラーニングフレームワークです。
Caffe2
サポート
特徴
オープンソースのディープラーニング向けフレームワークです。
設定部分を変更するだけで、高度な専門知識を不要としたディープラーニングを行うことが出来ます。
Pythonを利用することが出来ます。
Deeplearning4j
サポート
特徴
ScalaとJavaで実装されています。
Hadoopや Sparkと連携することが可能です。
Hadoopとは、オープンソースの分散処理ソフトウェアでJavaで実装されています。
Sparkとは、オープンソースの分散処理ソフトウェアでScalaで実装されています。
PaddlePaddle
サポート
特徴
Baiduは中国のGoogleのような企業です。
主に中国国内で利用されています。
MXNet
サポート
特徴
PythonやR言語、 Julia、 Go 言語等を利用することが出来ます。
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
今回は、教師あり学習と教師なし学習について解説しました。
これらの内容を参考にして、scikit-learnを使って教師あり・なし学習に挑戦してみてください!
TechAcademyでは、初心者でも、AI(人工知能)の構築に必要な機械学習・ディープラーニングについて実践的に学習することができる、オンラインブートキャンプAI講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。
この記事を監修してくれた方
太田和樹(おおたかずき) 普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。 開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント 地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。 |