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 時間で消えてしまうため、長時間を要する処理などは別途環境を用意する必要があります。 学びはじめのうちは、数分から数時間程度で終わる処理がほとんどであるため、気にする必要はありませんが、本格的に使っていく場合は有料のクラウドサービスを利用するなどして、環境を整えるようにしましょう。

(以上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票を!

四則演算の他、余り、べき乗の計算を追加した

ブラウザーのアドレスフィールドから「+」の文字を入力するとoperatorとして認識されない。

四則演算の他余りべき乗の計算を追加した

ブラウザーのアドレスフィールドから「+」の文字を入力するとoperatorとして認識されなくて「Illeagal operator」となるため英字一文字の入力することにした。ついでに余りとべき乗も追加した。
a:add
s:subtract
m:multiply
d:divide
r:reminder
p:power
である。
アイキャッチ画像は10の2乗を計算しているところ。

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

numpyを使ってAND条件を印書する

アイキャッチ画像はライブラリーnumpyを使ってAND条件を印書したところです。

numpyを使ってAND条件を印書する

numpyを使ってAND条件を印書する。

アイキャッチ画像はライブラリーnumpyを使ってAND条件を印書したところです。

ブーリアンのAND演算でそれぞれがどうなるかがハッキリ分かります。

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