機械学習(ネットより借用)

Quiitaに載ったnord2sudjpさんの文章を全面的にコピーさせていただきました。有難うございます。

200701機械学習

機械学習について一回挫折してしまったエンジニアが何とかお仕事で機械学習を使えるようになるまで

Python

初心者

機械学習

DeepLearning

データ分析

初めに

4x歳越えのエンジニアにとって機械学習は何やらややこしいもの、本を開けば数式があり、pythonがあり、何それおいしいの?5年ほど前にCourceraで機械学習を学ぼうとしたがあっさりAndrew Ng先生はWeek4で挫折。”教師付き学習”と”教師なし学習”のちがいなんだっけ?

想定している読者

IT業界で別のキャリアを持っていて機械学習のキャリアをみにつけたい、あるいは身につけようとしたが挫折してしまった人

自分のキャリアについて

ホストの開発エンジニアから始まり、クライアントサーバー、Webアプリと開発系を云十年。その後ネットワーク、インフラ系を主な仕事にしています。

機械学習とのかかわり

5年ほど前に機械学習の勉強をしようとしたが、何をやっているか意味が分からず、あっさり挫折。その後は雑誌などで読む程度。

注)データ分析・機械学種・人工知能については、この文章では厳密に分けていません。

挫折した敗因

機械学習について理解していなかった件

勉強の仕方

機械学習について理解していなかった件

まず機械学習が何かを理解していなかった。

人工知能、機械学習、データ分析、統計とあるがこの違いを理解せず、ひたすら機械学習を統計の一分野と信じ込んでいた。

学習という言葉を過去の統計量のなにか”すごいもの”と考えていた

結果としてそれが予測としての”回帰”, “分類”に続くという概念がなかった。

勉強の仕方がわかっていなかった

いきなり数式から勉強しだした→時間かかるが業務には役に立たず

勉強しても使えないので、相変わらずSQL, エクセル、ピボットテーブルに頼る

モチベーションが下がって続けるのが嫌になってやめた

今回の勉強方法

視点を分けて効率よく理解できるように進めることにした。

ユーザーと機械学習について話をできるようにする -> 人工知能概要

機械学習に頼らない一般的なデータ分析を理解する -> データ分析一般

機械学習を導入するプロジェクトポイントを理解する -> プロジェクト管理

機械学習をとりあえず使えるようにする -> 機械学習の初歩

Pythonを使えるようにする -> Pythonを学ぶ

数学について理解を深めて、機械学習の実装コードを書く -> 数学

機械学習をさらにディープに学ぶ -> 機械学習中級者へ向けて

人工知能概要

社内システムエンジニアにとって避けて通れないのは機械学習をビジネスに役立てる方法である。

内部顧客に対して機械学習システムを売り込んでいく、これがなければ社内での必要性を醸成できないし、予算も獲得できない。

おすすめの教材

G検定

「ユーザーに対して機械学習・AIについて何かを話せるようになりたい。しかも2週間で!」という人に間違いなくお勧めがG検定である。人工知能に関する歴史、今後の展開、危険性、哲学が効率よく学べる。お勧めの教材は下記の2つ。

人工知能は人間を超えるか ディープラーニングの先にあるもの

この本は絶対に読むべきである。データ分析、機械学習、人口知能は様々な用語が複雑に絡み合い、使っている本人も明確な定義や違いを理解していない。第一章では人工知能を明確に定義し、かつ他の用語との違いを明らかにしている。さらに第二章から第五章では人工知能の歴史をたどることのより、人工知能における様々な分野が整理されている。第六章および第七章はビジネスでユーザーに話す際のAIについて知見として含蓄に富んでいる。二時間程度で読み終わる、何はともあれ読むべき一冊である。

徹底攻略 ディープラーニングG検定 ジェネラリスト

G検定をとるにあたり様々な参考書が出ているが、自分としてはこの一冊があれば十分と考える。この本で理解できなかった部分だけをインターネット上で調べてテストに臨んだ結果としてG検定を取得できた。G検定を修了するととりあえずユーザーとはそれっぽい言葉を使ってお話をできる。またデータ分析、機械学習、人工知能にまつわる用語まある程度使い分けができる。

データ分析一般

データ分析の一分野が機械学習であり、機械学習の一分野が人工知能である。大きな枠組みとしてのデータ分析を理解していなければ、一時しのぎの機械学習エンジニアにしかなれない。その反面、データ分析という分野を理解していれば必要に応じて、統計手法、機械学習手法、人工知能を使い分けられる。エクセルですむデータ分析に人工知能をもちいるのは意味なし!

おすすめの教材

本物のデータ分析力が身に付く本

この本の素晴らしいことろは、設計→事前チェック→分析方法→分析→評価および解釈→表現を一気通貫で一冊のしかもコンパクトな本にまとめているところである。問題がある分野の定義からいかにしてデータ分析に進めていくか、図解、基本問題を明確に理解する。さらにあらかじめエクスセルで作成されテンプレートでハンズオンを実施すれば間違いなくデータ分析初級者卒業である。

一億人のための統計解析

著者の西内啓氏は「統計学が最強の学問」でよく知られている。しかし超実践という意味ではこの本がおすすめである。IT技術者としてデータ分析にかかわり始めると、最初の難関はビジネスで起きている問題をどのように把握して、データ分析に持ち込むかである。データ分析の手法および実践は基本的なIT知識があればあまり困難なく実施できる。しかしビジネス→データ分析分野への持ち込むにはITではなくビジネス寄りの知識が必要になる。この本は実際のケーススタディを基にしてデータ分析を進める。使っているソフトはエクセル、手法はピボットテーブルおよび統計が主である。この本を読むことでビジネス上の課題を以下にアプリケーションに落とし込むかを理解できる。

データ解析の実務プロセス入門

この本は先の2冊に比べると細かくより実践的である。しかしそれだからこの本を先に読むとほぼ間違いなく挫折する。あるいは挫折しなくても、何をやっているかを理解できずに読み終わり時間だけ無駄になる。上記2冊はそれぞれ一週間ほどでハンズオンも含めて終了できる。その後にこの本を読むことで、データ分析を趣味からビジネスレベルへとブラッシュアップできる。この本はいつでもそばに置いてあり、なにか行き詰った時にはアイデアを出すために読んでいる。

プロジェクト管理

社内での新しいシステムを導入するためにはプロジェクトとして進める必要がある。プロジェクトにしなければ、予算はつかない、人員もつかない、関係部署ともやり取りできない。システム開発のプロジェクトについては進め方を理解していても、データ分析プロジェクトでは何が違うかを明らかにする。

おすすめの教材

人工知能システムのプロジェクトがわかる本

さすがに40歳を越えるとIT系のプロジェクトは複数回経験がある。そこでポイントになるのは今までのITプロジェクトと機械学習のプロジェクトは何が違うのか、大事なのは他のシステム開発とは同じポイントは何か、異なるポイントは何かを理解することである。これにより今までの知見を活かしつつ、スムーズに機械学習・人工知能プロジェクトを導入できる。そして今までのプロジェクトと明らかに異なる点は2つある。POCとKPIであり、これがわかりやすく紹介されている本は一冊だけであった。

機械学習の初歩

機械学習の核心となるのがこの分野である。言語してはPythonとRから選べるが、今は資料および将来性からPythonで機械学習の基本を学ぶことをお勧めする。

おすすめの教材

Pythonデータサイエンスハンドブック

何からはじめたらよいかわからなければまずここからです。この本は英語版であれば無料で利用できます。

Pythonで機械学習を利用する場合、間違いなく利用するパッケージがnumpy, pandas, matplotlibです。導入としてまずそれぞれのパッケージの使い方について基礎を学びます。そして実際の機械学習パッケージであるscikitlearnへと進みます。量も多すぎず少なすぎずであまり時間を掛けずに進めることができます。機械学習の章では、数式も出てきますが、ここは無理に理解しようとせず、とりあえずパッケージの使い方に注力すればよいでしょう。

Pythonによるデータ分析入門

この本は上記Pythonデータサイエンスハンドブックを読み終わってから、取り掛かることをお勧めします。

一説ではデータの準備に8割、機械学習の実施に2割の労力が必要とされるといわれます。この本は機械学習ではなく、データ分析手法に主に取り扱っています。ファイル入出力、データ型、可視化、データ変換などをより細かく扱っています。そのためPythonの知識が必須です。読み込むのもハンズオンを含めるとそれなりに時間がかかります。しかしこれを一冊終わらせたら間違いなくPython初心者卒業であり、しかもデータ分析をするにあたっての、numpy, pandas, matoplotlibについて使いこなせるでしょう。

Pythonで始める機械学習

さて上記2冊を終わらせると、データの準備及び基本となる機械学習についてはばっちりである。この本は機械学習中級者への第一歩となる。機械学習を始めてみると、時間がかかるのはデータのクレンジングと特徴量設計である。特徴量設計は実践という意味ではkaggleのKernelがおすすめである。しかしこの本で特徴量設計についてはあらかじめ基礎を理解しておけば、なぜカーネルで記述されているような特徴量設計がされているかが理解できる。この賞は何回でも読み直したい。

Python

機械学習を学ぶ際の言語としては先にも記述したがPythonとRが主流である。かくいう自分はかつては統計データの取り扱いでRを利用していた。しかし今機械学習を学ぶ上では間違いなくPythonがおすすめである。

まずPythonで提供されているscikitlearnは機械学習を学ぶのに最適なパッケージである。そして様々な本やオンラインのトレーニングも提供されている。さらに機械学習の前段となるデータクレンジングのステップでもPythonは強力なツールとなる。

おすすめの教材

Udemy 現役シリコンバレーエンジニアが教えるPython3

面倒くさいことは言いません、とりあえずここからはじめるのが一番です。値段が安い時を狙ってください。

みんなのPython

Pythonを基礎から教えてくれる本である。イテレータ、ジェネレータ、デコレータなどの理解が難しい分野についてもわかりやすく説明している。

独学プログラマー Python言語の基本から仕事のやり方まで

プログラマーとして仕事を始めると、言語以外の知識も必要になってくる。この本を読めばPythonプログラマーとして必要なツールについても理解が深まる。新しい会社に働きに行って、「このPythonはシェルに組み込んでおいてね」や「必要なソースコードはgitからプルしてね」といった会話にも付いていける。

数学

正直業務で使うだけなら、それほど数学は必要ない。しかしある程度は理解しているほうがトラブルシューティングやコードの改善にも役立つ。

Andrew NG氏による機械学習

数学という意味では少々分野がずれるかもしれない。しかしAndrew NG氏によるこのコースはアルゴリズムの理解とその背景にある数式、さらにOctaveによるコードまで、一気通貫で説明する。線形代数、ベクトルを単体で勉強したとしても機械学習のアルゴリズムの中でどのように利用されているか、そしてどのようにコーディングされるかが理解できないと実務には役に立たない。その点このコースはアカデミックと実務をバランスよく組み合わせたコースである。ただしテストはかなり難しい。。。

統計学が最強の学問である[数学編]

再び西内啓氏の登場である。とにかく「統計学が最強の学問である」が良く知られているが、個人的にはこちらのほうがおすすめである。数式も出てくるが、説明がわかりやすく平易な日本語で書かれているために、数学の素養がなくてもねばりさえすれば理解できる。”ベクトルの内積とΣの関係”、”統計学での内積の使い方”の章でようやく内積の意味を理解できた気がする。

やさしく学ぶ 機械学習を理解するための数学のきほん

やる夫で学ぶ機械学習シリーズの著者による執筆である。このシリーズを見たときにはやる夫なかなか、やるな!と実感した。こちらのシリーズを終えてからより実践的なこちらの本で勉強を始めた。数式もばっちり出てくるが、基本をしっかり押さえつつ、初学者にはあまり必要でないややこしいところはうまい具合に取り除いている。数学で挫折した人にまずはお勧めしたい一冊である。ちなみに数式という意味では、ビショップ本が著名であるが、初心者が手を出すと間違いなく挫折します。

機械学習中級者へ向けて

さてここまででおそらく初級者としては十分すぎるほどである。しかしどうすれば中級者にむけた足掛かりをつくれるか、これは股別問題である。ここでは自分が読んだ中で、間違いなくレベルアップを実感できた二冊の本を紹介する。良書と呼ばれる本はこのレベルでも複数ある。しかし正直難しすぎることが多く、途中で挫折してしまった本が多いのもこのレベルの特徴である。

おすすめの教材

ゼロから作るDeep Learning

脱初級に向けて何か一冊となったら間違いなくこの本である。正直この本を読むまでは”誤差逆伝播法”という単語は知っていたが、まったく理解できていなかった。本などを読んでもいまいちピンとこない。この本の第五章はその名も”誤差逆伝播法”であり、一から実装する。この本の中でどこかひとつ選ぶとなったら、まさしく第五章である。ただし第三章のニューラルネットワークおよび第四章のニューラルネットワークの学習で実装した内容を用いるために、こちらも併せて読みたい。

機械学習プログラミング 達人データサイエンティストによる理論と実践

現在手を付けているのがこの本である。おそらくこの本を読了してコードも一通り理解できれば、実装という意味では中級卒業と考えられる。数式は出てくるが基本を押さえておけばわかる範囲であり、”やさしく学ぶ 機械学習を理解するための数学のきほん”を理解していれば問題ない。大事なのは数式が理解できなかったらすぐに調べることです。なぜなら、数式の説明の後に、これを容赦なくコードに落とし込んでいくので単層パーセプトロンを一から実装する。シンプルで平易なコードであるが、Pythonコードを読む能力が相当要求される。第二章を足掛かりとして、ほかの機械学習の分類アルゴリズム、データの前処理、クロスバリデーションと話を進めていく。全体として難しい内容を平易な文章とコードで説明しようとする意図が感じられる良書である。

  • Quiitaに載ったnord2sudjpさんの文章を全面的にコピーさせていただきました。有難うございます。
↑人気ブログランキングに参加しています。ポチっと1票を!

                                以上

iPhoneより修正入力

どうやってAIを学習するか?

各学習法を吟味、自分に合った方法で進める。

Chainer チュートリアルへようこそ。

このチュートリアルは、機械学習やディープラーニングの仕組みや使い方を理解したい大学学部生以上の方に向けて書かれたオンライン学習資料です。

機械学習の勉強を進めるために必要な数学の知識から、Python というプログラミング言語を用いたコーディングの基本、機械学習・ディープラーニングの基礎的な理論、画像認識や自然言語処理などに機械学習を応用する方法に至るまで、幅広いトピックを解説しています。

機械学習を学び始めようとすると、ある程度、線形代数や確率統計といった数学の知識から、何らかのプログラミング言語が使えることなどが必要となってきます。 しかし、そういった数学やプログラミングの全てに精通していなければ機械学習について学び始められないかというと、必ずしもそうではありません。

本チュートリアルでは、機械学習やディープラーニングに興味を持った方が、まず必要になる最低限の数学とプログラミングの知識から学び始められるように、資料を充実させています。

そのため、できる限りこのサイト以外の教科書や資料を探さなくても、このサイトだけで機械学習・ディープラーニングに入門できることを目指して、作られています。初学者の方が「何から学び始めればいいのか」と迷うことなく学習を始められることを目指したサイトです。

また、本チュートリアルの特徴として、資料の中に登場するコードが、Google Colaboratory というサービスを利用することでそのままブラウザ上で実行できるようになっているという点があります。

ブラウザだけでコードを書き、実行して、結果を確認することができれば、説明に使われたサンプルコードを実行して結果を確かめるために、手元のコンピュータで環境構築を行う必要がなくなります。

とりあえずkeras

とりあえずkerasの本から始めました。

こいつです。

実装するだけならこんなに簡単なのか!っていうのでモチベ爆上がりしましたね。

この本のおかげで、何に何を入れたら何が出てくるぐらいは理解できました。

つまり、よくわかんないけど作れる。みたいな状態。

この本を(わからないところは飛ばし飛ばし)終えてからtensorflow公式のAIチュートリアルをやってました

あとは微分と積分がなんで重要なのかをちらっと勉強してました。

ただ、東大松尾研究室のDL4USの存在を知ってたそっちを受けてたかも(^^;

動画編

数学は動画で勉強。

TRYの動画授業。

YOUTUBEなので無料だしわかりやすい。

高校生向けになので初心に帰れるのも良い。

微分だけ学びました。

予備校のノリで学ぶシリーズ。

YOUTUBEなので無料。

確率統計、線形代数はここで学んだ。

ボケがおもしろくなくておもしろいので好き。

1.わからないところを理解する。

独学で一番まずいのが、なんかよくわからないからモチベ下がったってやつです。

モチベ下がるのは良くないので、なんでわからないのか、どこがわからないのか、というのを理解して対策を打ちましょう。

ワンもあ言います。「わからない理由を明確化する」、そして「対策を打つ」。

もう一回いいます。「なんで」わからないのか、どこがわからないのか、そして「対策」。

もう一度いいます。「原因」と、「対策」。

わかんなくて叫びだしたくなったら「原因」と「対策」っていうのを思い出してください。

原因を見つけるのは2ステップ。

「どこ」がわからないのか、どこからわからなくなったのかを調べる。

全体像

本講座は全7Lessonの演習マテリアルからなっています。各Lessonは次のような構成になっています。

– Lesson 0: 機械学習・Deep Learningのキソ

  – 機械学習概観

– Lesson 1: 手書き文字認識をしよう

  – Keras入門、MNIST、MLP、前処理、勾配に関するテクニック、過学習に関する手法、Fashion MNIST

– Lesson 2: 畳み込みニューラルネットワーク

  – CNN基礎、Data Augmentation、画像データの正規化、Batch Normalization、Skip Connection

– Lesson 3: 系列データで予測させてみよう

  – RNN、BPTT、Gradient Clipping、LSTM、GRU

– Lesson 4: ニューラル翻訳モデルをつくってみよう

  – 言語モデル、分散表現、Seq2Seq、Keras Functional API、Attention

– Lesson 5: 画像からキャプションを生成してみよう

  – MSCOCO、学習済みモデルの利用、キャプション生成、Attention

– Lesson 6: ニューラルネットに画像を生成させよう

  – 生成モデル入門、GAN、Conditional GAN、VAE

– Lesson 7: ニューラルネットでゲームを攻略するAIをつくろう

  – 強化学習入門、Q学習、DQN、OpenAI Gym、Double DQN、Dueling Network

演習の進め方

各LessonにはそのLessonで学ぶトピックの説明及びPythonでの実装がJupyter Notebook形式でまとめられています。 各Lessonは4つのSectionから構成されている。

(画像はネットより借用、文面もQiitaなどより借用)

↑人気ブログランキングに参加しています。ポチっと1票を!

Coursera machine Learningに参加してみた

Coursera machine Learningに参加してみた

次のような理由でコースを途中でQuitした。
まだ、様々な基本知識の欠落がある。
オブジェクト指向言語を学習中。
5ヶ年計画で目標はAIのリテラシーが分かればよい。
でもコースのカリキュラムが知りたい。
そこでこのコースの章立てを紹介する。

Coursera machine Learning(スタンフォード大学)
講師:Andrew Ng
******************************************************
Introduction
Test
Linear Regression with One Variable
Test
Linear Algebra Review
Test
Linear Regression with Multiple Variables
Test
Octave/Matlab Tutorial
Test
Programming
Logistic Regression
Test
Regularization
Test
Neural Networks:Representation
Test
Programming
Multi-Class Classification and Neural Networks
Test
Programming
Advice for Applying machine Learning
Test
Programming
Regularized Linear Regression and Bias/Variance
Test
Support Vector Machines
test
Programming
Unsupervised Learning
Test
Dimensionality Reduction
Test
Programming K-means Clustering and PCA
Anomaly Detection
Test
Recommender Systems
Test
Programming
Large Scale Machine Learning
Test
Application Example:Photo OCR
Test
**************************************************
Testは80%以上で次に進める。
ProgrammingはOctave。
基本、数学は80%以上で先に進めたがそれ以降は途中でQuitした。(実力不足)

これで5年かけて徐々に計画を進めるとの方針が再び決まった。

話は変わりますが、クラウドを勉強するうえでQiitaで有用な記事を見つけたので将来ブログにアップしたいと思っています。
CNCFとは
CNCFは2015年7月に発表され、約50社が集まり2016年1月に正式発足した。最初の発表から4年後2019年11月のメンバーは約500団体で、大手クラウド事業者、ミドルウェア企業、ハードウェア製造企業、オープンソース・ソフトウェア企業、大学、その他非営利団体などが加入している。

(写真はY.O.氏から借用)

↑人気ブログランキングに参加しています。よろしければ1票を!

Numpyを使ってXOR条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数XORを印書したところです。

Numpyを使ってXOR条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数XOR(排他的論理和)を印書したところです。

↑人気ブログランキングに参加しています。よろしければ1票を!

Numpyを使ってNAND条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数NANDを印書したところです。

Numpyを使ってNAND条件を印書する

アイキャッチ画像はPythonのNumPyを使ってブーリアン代数NANDを印書したところです。
AND条件は2018/11/25付の記事を参照願います。

↑人気ブログランキングに参加しています。よろしければ1票を!

numpyによる配列作成

numpyによる配列作成

① 配列0(整数)10個のリスト
② ①のデータ
③ 2行3列の実数1の配列
④ ③のデータ
⑤ 2行3列の整数1の配列
⑥ ⑤のデータ
⑦ 実数2.~10.を5等分する配列
⑧ ⑦のデータ
⑨ 単位行列(4行4列)
⑩ ⑨のデータ
⑪ 2行4列の配列の要素全てに3.14を埋める

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Chainerが作った「ディープラーニング入門」を紹介!

機械学習を勉強するには、いくつかの知識が必要です。それらを学ぶ上でいろいろな書籍やネットの情報が必要ですが、Chainerが出した「ディープラーニング入門」で必要十分です。

Chainerが作った「ディープラーニング入門」を紹介!

以下、DogFortune(Qiita)さんから引用。

機械学習を勉強するには、いくつかの知識が必要です。

• 統計や線形代数といった数学の知識
• Pythonを使うのでプログラミングの知識
• 画像処理、音声処理といった知識
• 学習を行う為のコンピューティングリソースの準備

それらを学ぶ上でいろいろな書籍やネットの情報が必要ですが、Chainerが出した「ディープラーニング入門」で必要十分です。
これはChainer Tutorialです。
最低限必要な知識がまとめて学べます。

このチュートリアルでは、機械学習を行っていく上で必要な最低限の数学とプログラミングを学んでいくことができます。
• Pythonの文法から条件式、クラスや継承といったところまであります。もちろんNumPyやCuPyもしっかりあります。
• 数学については、微分、合成関数、偏微分といった所もしっかり記述されています。これらを順番にこなすことで、機械学習を行ううえで、「なぜ必要なのか」をしっかり学んでいけます。
• 確率変数、確率分布も学べます。

ここまでしっかりと揃っているうえに、あちこちサイトを行き来しなくてもよい という所が非常に素晴らしいです。

ブラウザで学べる

機械学習の知識がついてきたところで、さぁやってみようと思った時に問題になるのが環境の構築です。数年前に比べたら比較的簡単に環境を構築できるようになってきましたが、フレームワークの進化も非常に早く、ネットの情報がすでに古いといった事も多いです。
このチュートリアルは、ブラウザ上で学ぶことができます。それも、資料の中に登場するコードがそのままブラウザ上で実行できる という所です。
資料はすべてノートブック形式になっていますので、解説とコードが同時に実行できるようになっています。なので、ただ読むだけの資料ではなく、実際にコードを記述してその結果も学ぶことができます。 これは非常にありがたいです。

Google Colaboratoryとして実行できる!!

これがこのチュートリアル最大のポイントです。先ほど資料はノートブック形式になっていると述べましたが、これがGoogle Colaboratoryで実行できるようになっている事です。
資料の上部にある「Open in Colab」ボタンを押すとすぐに開くことができます。
基本的にはJupyter Notebookと同じですが、Google Colaboratoryでは GPUリソースが利用できます。しかも無料です。
ですので処理の重い畳み込みニューラルネットワークも比較的短時間で体験することができます。GPUが絡むと途端に環境構築が大変になるので、ぜひ活用すると良いです。

まとめ

公式にもありますが、 このサイトだけで機械学習・ディープラーニングに入門できる事を目指して作られています。 基本的な知識はすべて網羅されているので、今から始めたい人はぜひ見てみてください。

章立ては次のようになっています。

Step1 準備編
。 1. はじめに
o 1.1. 必要なもの
o 1.2. Google Colaboratory の基本
o 1.3. Colab の基本的な使い方
• 2. Python 入門
• 3. 機械学習に使われる数学
• 4. 微分の基礎
• 5. 線形代数の基礎
• 6. 確率・統計の基礎
Step2 機械学習とデータ分析入門
• 7. 単回帰分析と重回帰分析
• 8. NumPy 入門
• 9. scikit-learn 入門
• 10. CuPy 入門
• 11. Pandas 入門
• 12. Matplotlib 入門
Step3 ディープラーニング入門
• 13. ニューラルネットワークの基礎
• 14. Chainer の基礎
• 15. Chainer の応用
• 16. トレーナとエクステンション

また今後次のような項目が登場するようです。

• 応用編:画像認識 (coming soon)
• 応用編:自然言語処理 (coming soon)
• 応用編:深層強化学習 (coming soon)
• デプロイ (coming soon)

以下Chainerから

「はじめに」

Chainer チュートリアルへようこそ。
このチュートリアルは、機械学習やディープラーニングの仕組みや使い方を理解したい大学学部生以上の方に向けて書かれたオンライン学習資料です。
機械学習の勉強を進めるために必要な数学の知識から、Python というプログラミング言語を用いたコーディングの基本、機械学習・ディープラーニングの基礎的な理論、画像認識や自然言語処理などに機械学習を応用する方法に至るまで、幅広いトピックを解説しています。
機械学習を学び始めようとすると、ある程度、線形代数や確率統計といった数学の知識から、何らかのプログラミング言語が使えることなどが必要となってきます。 しかし、そういった数学やプログラミングの全てに精通していなければ機械学習について学び始められないかというと、必ずしもそうではありません。
本チュートリアルでは、機械学習やディープラーニングに興味を持った方が、まず必要になる最低限の数学とプログラミングの知識から学び始められるように、資料を充実させています。
そのため、できる限りこのサイト以外の教科書や資料を探さなくても、このサイトだけで機械学習・ディープラーニングに入門できることを目指して、作られています。初学者の方が「何から学び始めればいいのか」と迷うことなく学習を始められることを目指したサイトです。
また、本チュートリアルの特徴として、資料の中に登場するコードが、Google Colaboratory というサービスを利用することでそのままブラウザ上で実行できるようになっているという点があります。
ブラウザだけでコードを書き、実行して、結果を確認することができれば、説明に使われたサンプルコードを実行して結果を確かめるために、手元のコンピュータで環境構築を行う必要がなくなります。
本章ではまず、この Google Colaboratory というサービスの利用方法を説明します。
1.1. 必要なもの
• Google アカウント(お持ちでない場合は、こちらからお作りください:Google アカウントの作成)
• ウェブブラウザ( Google Colaboratory はほとんどの主要なブラウザで動作します。PC 版の Chrome と Firefox では動作が検証されています。)
1.2. Google Colaboratory の基本
Google Colaboratory(以下 Colab )は、クラウド上で Jupyter Notebook 環境を提供する Google のウェブサービスです。Jupyter Notebook はブラウザ上で主に以下のようなことが可能なオープンソースのウェブアプリケーションであり、データ分析の現場や研究、教育などで広く用いられています。
• プログラムを実行と、その結果の確認
• Markdown と呼ばれる文章を記述するためのマークアップ言語を使った、メモや解説などの記述の追加
Colab では無料で GPU も使用することができますが、そのランタイムは最大 12 時間で消えてしまうため、長時間を要する処理などは別途環境を用意する必要があります。 学びはじめのうちは、数分から数時間程度で終わる処理がほとんどであるため、気にする必要はありませんが、本格的に使っていく場合は有料のクラウドサービスを利用するなどして、環境を整えるようにしましょう。

chainerチュートリアル

(以上Qiitaの記事-DogFortune-及びChainerのはじめにを引用させていただきました。)

↑人気ブログランキングに参加しています。よろしければ1票を!

数学ソフトウェアパッケージOCTAVEを使ってみた

この言語は線形代数が得意で行列、複素数、三角関数など数学の問題を解くのに便利である。50年前を思い出しながら行列演算をやってみた。

数学ソフトウェアパッケージOCTAVEを使ってみた

online seminar「機械学習」(Stanford U. Andrew Ng先生)で使っているといわれる、OCTAVEを使ってみた。
この言語は線形代数が得意で行列、複素数、三角関数など数学の問題を解くのに便利である。
関数をプロットするのも得意でアイキャッチ画像を見ていただければわかると思う。
このソフトウェアはMATLABとほぼ互換性があるということだ。
インストールも簡単である。
最新Versionは4.4.1でCLIとGUI版両方を持っている。
50年前を思い出しながら行列演算をやってみた。
簡単にできた。

plotした関数

行列演算の様子


↑人気ブログランキングに参加しています。よろしければ1票を!

5ヶ年計画Revise up(ver3.0)

Qiitaに谷CEOの記事が載ったのでそれを参考にAIエンジニアになるための道程表をリバイズアップした。有用な記事、感謝いたします。

5ヶ年計画Revise up(ver3.0)

Qiitaに谷CEOの記事が載ったのでAIエンジニアになるための道程表(5ヶ年計画)をリバイズアップした。
有用な記事感謝いたします。

layout: “post”
title: “5ヶ年計画ver3.0”
date: “2018-12-18 13:38”

AIエンジニアに最低限必要な知識
まずは、AIエンジニアに最低限必要な知識を大きく6つに分けて見ました。
ここでは、将来AIエンジニアとして業務を行うにあたり、大きく分けて6つの内容の基礎知識の全体像を把握してください。

①プログラミングスキル
– Python
– numpy、pandas、matplotlib、scikit-learn、TensorFlowやkeras

この中で特にpandasを使いこなせると良いです。
機械学習を行う上で、データ前処理が必須なのですが、データ前処理を行う上で便利なライブラリです。

②数学
– 微分、線形代数、ベクトル、行列、確率など

③統計の知識
– 標準偏差、分散、確率分布、推定、検定などなど

④機械学習の基礎知識

教師あり学習と教師なし学習
前処理、特徴量設計、学習と評価
単回帰、重回帰分析、最小二乗法、パーセプトロン、ロジスティック回帰
決定木、ランダムフォレスト、サポートベクトルマシン、K-means
ディープラーニングの実装スキル及び知識
scikit-learn
TensorFlowやKerasなどのフレームワークの知識。
scikit-learnで学習済みモデルを作るまでの流れなど。
1.データの収集とデータの前処理欠損値の補完や外れ値の削除。
2.特徴量の設計(特徴量の選択)
3.モデル開発(モデルの選択と学習)
4.モデル評価・・・交差検定、混合行列で評価など。
⑤SQLを使ってデータベースを操作する知識。
– select、insert、update、delete、where、like、limit、sum、avg、max、group by、having、order by、テーブル結合、ビュー、サブクエリ、caseなどなど。

⓺クラウドの知識
– AWSやGCPやAzureなどのクラウドインフラ回りの知識。

大きく6つもあり以外と多いなと思われたかもしれませんが、一度に全てやるのではなく、まずは①と④の2つに絞ることをお勧めします。
理由は、実際にプログラムを書き、目に見える形にすることで継続して学びやすくなるからです。
はじめに理論から入ると独学だと挫折してしまうので。

人工知能を独学で勉強するオススメの方法
必要な知識は前の節で紹介しましたが、どのようにそれらを学べば良いのでしょうか。
①から⑥を学ぶ上で、以下のような順で知識を身につけていくことをお勧めしています。

フェーズ1 pythonによる機械学習プログラミングと人工知能概論を学ぶ。
フェーズ2 機械学習プログラミング。
フェーズ3 Kaggleに挑戦。
フェーズ4 SQL、スクレイピング、クラウドなどの技術も身につける。
フェーズ5 機械学習スキルを活用してプロダクト制作をする。
フェーズ6 教える(多分これはしないと思う)。

このフェーズごとに学んでいくことがもっとも自分自身に負荷をかけず、楽しく学ぶことができると考えています。

フェーズ1ではプログラミング初学者の方を指しております。
もし、プログラミングを初めてという方は是非フェーズ1から目を通してください。

フェーズ2では実際にフェーズ1で学んだ内容をベースに、機械学習プログラミングに関する勉強方法を説明して参ります。
既にscikit-learnを使った機械学習プログラミングを行なっている方は飛ばして頂いても構いません。

フェーズ3ではKaggleといったコンペティションを通じて実践的なプログラミングを学ぶ方法を記述しています。(これもしないと思います)

フェーズ4 機械学習をやる上で、データベースからデータを取り出すことは頻繁に行われますので、SQLの知識は必須です。ここでは、SQLの他にスクレイピング(データ収集用)、クラウドなどの技術の身につけ方を紹介します。(まずはAccessから)

フェーズ5 機械学習スキルを活用してプロダクト制作に取り掛かりましょう。このレベルまで到達した方は、プロダクトを通じて学ぶことが多いです。

フェーズ6 人に教えることで自分の分かっていなかったことが明確になることがあります。なので、友人などに機械学習を教えて自分の理解を深めることもよいでしょう。

以降、6つのフェーズごとに、どのようにこれらに取り組めば良いのか、お勧めの書籍などを紹介しながら説明していきます。

# 開発環境構築

1. PCにIpython、Python、Atom設定
・AtomではPython単体でデバッグ
・WSLとemacsでWebの練習問題をコピペで開発
・WEBのTopページをデザインおよび開発
・Topページ(index.html)の下でdemo.py demo.html demo.css demo.jsを開発
・各demoxx.pyデザイン、demoxx.htmlデザイン、代表.cssデザイン
・モジュール名を標準化
・モジュール一覧表を作成

2. Git、GitHub設定ー協力者選定
・GitHubを勉強(バインダーのもの)

3. ドキュメント計画策定
・モジュール一覧表を作成
・Pythonプログラム・ジャーナル整理
・HTMLジャーナル整理
・JSプログラム・ジャーナル整理

4. 開発計画

1. Python習得計画
2. 実機練習
3. Pythonプログラミング(コマンドプロンプトとWSL上で)
4. デバッグ
5. モデル構築
6. Ipytonデバッグ(WSL上でJupyternotebook)それをAtom環境下で開発(numpy,pandasの習得)

PCにIpython、Pyton、Atom設定

– Toshiba dynabook Satellite B554/K 使用
– ドキュメンテーション
– 開発環境下でテスト
– 逐一ブログアップ

# Git、GitHub設定ー協力者選定

– GiTHub学習
– 協力者要請

# ドキュメント計画策定

– 5ヶ年計画
– 1年間のスケジュール
– 3年間のスケジュール
– 最終計画

# 読書計画

– Qiita掲載中のドキュメント精読(仕掛中)
– オブジェクト指向で何故作るのか(購入済み)
– 新しいLinuxの教科書(購入済みー実機で参照したのち熟読)
– みんなのPython(購入済みー仕掛中、早めに)
– 日経Linux(購入)
– ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装(購入済みー熟読)
– Access学習(住所録作成・MySQL Queryを中心に学習)
– Qiitaでコピペしたドキュメント勉強(仕掛中)
– (プログラミング(Python)、統計的機械学習、深層学習(Deep Learning)、機械学習のための数学、確率・統計)
– やさしく学ぶ 機械学習を理解するための数学のきほん
– Ipython Interactive Computing and Visualization Cookbook(購入済みー最後に)
– その他

↑人気ブログランキングに参加しています。よろしければ1票を!