ユーザ用ツール

サイト用ツール


サイドバー

目次

機械学習とは

プログラミング無しで機械学習

機械学習プログラミング入門

初めてのKeras2.0

初めてのTensorflow(YouTube)

初めてのChainer2.0

初めてのビットコイン

ビットコイン用語集

初めてのSolidityプログラミング

初めての医療統計

初めてのエクセルで医療統計

初めてのEZRで医療統計

初めてのRStudioでレポート作成

スマホアプリ作成ソフトIonic3

スマホアプリ作成ソフトIonic4

Ionicのためのjavascript tips

その他

NiftyCloudMobileBackend

税金など

Dokuwiki

index.html

このサイトについて

プログラミングど素人が、Windowsノートパソコン片手に機械学習で遊ぶ軌跡のメモです。

多々間違っているところがあるかもしれませんが、このサイトは雰囲気重視で記載していきたいと思います。

機械学習ってものを試してみたい!という方は、以下の動画を見ながら、Chrome上で、Neural Network Console Cloud(SONY)を試して頂きますと幸いです。プログラミング未経験の方でも10分でサンプルを実行するところまでできると思います。

機械学習って何?

機械学習(Machine Learning)とは、経験(データ)から自ら“学習”するようなコンピュータプログラムを実現するための理論と技術のことである。

引用元 道具としての機械学習:直感的概要とその実際 Ichigaku Takigawa
https://www.slideshare.net/mobile/itakigawa/ss-72983543

機械学習とは、データから反復的に学習し、そこに潜むパターンを見つけ出すことです。そして学習した結果を新たなデータにあてはめることで、パターンにしたがって将来を予測することができます。

引用元 SAS Institute Inc.
https://www.sas.com/ja_jp/insights/analytics/machine-learning.html

機械学習の技術が進歩することにより、コンピューターによる自動運転や、作曲、絵画、病気の診断治療ができるようになります。人間が満足できるかどうかは別として、コンピューターが、ゲームの相手や、話し相手になってくれるようになります。また、四次元ポケットを持っていないドラえもんも作れるようになるでしょう。

あれ?今までと対して変わらなくない?って?確かに、そこまで大きな変化はないのですが、

  • 2012年にDeep Learningという手法が発見されたこと
  • コンピューター能力の向上
  • インターネットの普及でビッグデータを集めやすくなったこと

により、コンピューターでできることの精度が上がるようになったこと、また、2015年頃より、Tensorflowやchainerといった無料で使える機械学習フレームワークの登場により、

  • ある程度のプログラミング素人でも、大量のデータと気合さえあれば、チェスの世界チャンピオンに勝てるコンピューターソフトを作ることができる

ようになったことが、2010年以前とは異なるところです。

機械学習とは?機械学習でできること、今後実現されそうなこと
http://machine-learning-beginner.hatenablog.com/entry/2016/10/24/010008


引用元 人工知能、機械学習、ディープラーニングの違いとは
BY MICHAEL COPELAND · AUGUST 9, 2016
https://blogs.nvidia.co.jp/2016/08/09/whats-difference-artificial-intelligence-machine-learning-deep-learning-ai/.

Tensorflowって何のこと?

Tensorflow(テンソルフロー、テンサーフロー)は、Googleが2015年11月に公開した「多次元配列並列演算ライブラリ」(ニヤリーイコール機械学習ライブラリ)です。他のライブラリとの違いとしては、複数のGPUによる分散処理が得意らしいです。
以下の文章が参考になります。

2015-12-27 13:24.03 TensorFlow勉強会に行って来た
https://www.google.co.jp/amp/gamp.ameblo.jp/t-furuichi/entry-12110795681.html

初めて機械学習を学ぶとき

スライドや、動画を見ることから始めるのがおすすめです。

まずは、以下のサイトのリンクのスライドを、上から順番に、片っ端から斜め読みするのがよいです。意味不明だったり、見たこともない(見たくもない)数式が出てきてもキニシナイで、とりあえず横になりながらスマホで50個くらい、スライドを流し読みしてみましょう。

SlideShareの機械学習に関するスライドを大量に集めてみた
http://kamonohashiperry.com/archives/858

お勧めのスライドは以下のリンクへ

機械学習スライドリンク集

また、Courseraというオンライン講座の会員になって、スタンフォード大のAndrew Ng先生のMachine Learningコースを受講してみましょう(英語の動画、日本語字幕あり、無料)。

Coursera Machine Learning
https://www.coursera.org/learn/machine-learning

この動画では、内容は本格的なことを、極力、初心者向けに分かりやすく解説されており、絶対にお勧めです。おそらく、機械学習解説講座の中でも、全世界で一番受講者数が多い講座(しかも無料)だと思います。この講座の解説や感想のリンク集を以下に作成しましたので、動画を見ながら、そちらも参考になさってください。

CourseraのMachineLearning動画の解説や感想のリンク集

その次に、以下の本を読んで行くことがおすすめです。 本の読み方としては、1回目では理解しようとしないで、分からないところはさらーっと流して、とにかく最終章まで目を通し、概要をつかむ。1回目は、ちんぷんかんぷんかもしれない。2回目は、好きなところからソースコードをサポートサイトからダウンロードして実行。3回目以降に自分でコードを手書き入力、がおすすめです。

機械学習初めての人に1冊だけおすすめするとしたら、まずはこれです。

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 単行本(ソフトカバー) – 2016/9/24
斎藤 康毅  (著)
3672円

機械学習、ディープラーニングの概要と、python3での簡単な実装方法が解説されています。

2017年5月現在、Amazonで絶賛人気中のDeepLearningの本です。私が1回目に流し読みをした後は、詳しい内容はさっぱりわからなかったのですが、

(1)Deep Learningが、だいたいどんなことをやっているのか

(2)Deep Learning、機械学習の楽しそうな未来

が分かり、また、全体を通してとても面白かったです。繰り返し詳しく読んで理解してみたい!そして、さらに実践用の本を購入して読んで、自分でもやってみたい!と思いを強くしました。大人気のことだけはあると思います。お勧めです。

その他の本については、以下のリンクをご覧下さい。

おすすめの機械学習入門書2017年版

プログラミング言語Python3の勉強方法

機械学習入門書を読みつつ、必要に応じてPythonというプログラミング言語と、Linux(主にUbuntu)のBashコマンドを勉強する必要があります。

pythonの勉強方法としては、パソコンならpaiza、スマホならSoloLearnというアプリがおすすめです。SoloLearnは英語で、メールアドレス登録が必要ですが、無料ですし、多少英語が理解できなくてもなんとかなることが多いです。1冊くらい、python3の入門書を買って、軽く読んでおいてもよいと思います。実際のコードをかくときは、最初は、次のリンク先で紹介するGoogle Colaboratoryでやってみて、オフラインでやりたい場合は、最初のインストールが時間がかかりますが、jupyter notebook上でやるのが一番現実的だと思います。

colaboratoryで今すぐpythonを始める方法2018

WindowsでPythonを始める方法2017年版

機械学習のための数学

本を読んでいると、訳の分からない行列や微分の式が出てきたりしますが、ニューラルネットワークにおける、「順伝播法の計算のときの行列の積」と、「逆伝播法の計算のときの合成関数の微分法」くらいは出てきたときにちょこっと紙にポールペンで書きながらなんとなく理解したほうがよいとは思いますが、まあ、それらも含めて、プログラミングの際には数学をわざわざ勉強しなくても、なんとかなると思います。既存の機械学習フレームワークを利用するだけなら、超個人的意見としては、数学の勉強は時間の無駄だと思います。 どうしても機械学習向けの数学の本を読みたいのであれば、以下の本がおすすめらしいし、たぶんそれで良いと思われます。

首都大学東京 自然言語処理研究室(小町研)
自然言語処理を独習したい人のために
http://cl.sd.tmu.ac.jp/prospective/prerequisite

機械学習素人が2か月半で機械学習を入門したことまとめ 2017-3-15
http://dr-asa.hatenablog.com/entry/2017/03/15/064354

このサイトではWindowsパソコンを使用します

このサイトでは、2018年8月までは、Windows 8.1 Proのノートパソコンに、Anaconda3をインストールして、Python3.5を用いてコードを実行した経過を記載していました。(詳細は別記させていただきます。)

プログラミングのほとんどは、環境構築が最初の難関です。環境構築とは、自分のパソコンの画面で、そのプログラミング言語やフレームワークで一番簡単なコードを実行すること、たとえば、“ Hello World”と表示するまでのことです。私は、WindowsパソコンでRuby on Rails 4の開発環境を構築するのに3ヶ月かかりました。

しかし、時代は変わり、2018年現在、 Google Colaboratory

という無料のオンラインTensorflow(Googleが発表した機械学習のフレームワーク)環境があります! 多少の制限はありますが、ノートパソコン一つで、無料でGPUを用いた機械学習プログラミングを行うことができます。 常時オンライン環境であるなら、無料のGoogleアカウントを作成して、Google Colaboratoryで行うのが一番です。

2017年時点では、以下のように記載していましたが、お金さえあれば、これからはクラウドでいろいろやっていく時代になりそうです。

このサイトでは、Windows 8.1 Proのノートパソコンを用いてコードを実行した経過を記載します。なぜかというと、筆者は現在Macを持っていないからです。また、数十万円するパソコンに仮想環境以外でLinuxをインストールする財力もありません。しかし、MacやLinux(主にUbuntu)での環境構築方法はググればたくさん出てきます。2017年現在、プログラミングやるならMac、本気で機械学習やるならUbuntuといった雰囲気をひしひしと感じます。

筆者のパソコンその1

Panasonic CF-RZ4
Windows 8.1 Pro
こちらがメインです。

筆者のパソコンその2

Dell XPS 8700
Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
RAM 32.0 GB
GPU NVIDIA GeForce GTX 660 (4GB)
Windows 7 Professional
Anaconda 4.1.1(64-bit)
Python 3.5.2
Tensorflow 1.1 GPU

⇒ こちらのパソコンは廃棄してしまったので、2017年9月以降は使用予定はありません。

Windows 8.1でPythonの始め方

WindowsでのPythonの環境構築方法を以下にまとめましたので、初めての方はぜひご覧ください。

リンク

index.html.txt · 最終更新: 2018/10/07 (外部編集)