初心者必見!Pythonでニューラルネット・深層学習を完全攻略
4.0 (521 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,009 students enrolled

初心者必見!Pythonでニューラルネット・深層学習を完全攻略

Tensorflow + Kerasで難しい数学の基礎知識ゼロでも学べるAIとディープ・ラーニング(CNN・RNN)の基本
4.0 (521 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,009 students enrolled
Created by 亀田 健司
Last updated 10/2018
Japanese
Current price: $54.99 Original price: $84.99 Discount: 35% off
13 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 7.5 hours on-demand video
  • 15 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Python言語を用いてプログラミングに触れることが出来る。
  • 人工知能や深層学習のプログラムを自分で作ることが出来る
  • 研究開発や視聴調査などに深層学習を活かすことが出来る。
Course content
Expand all 92 lectures 07:26:38
+ はじめに
3 lectures 14:40

講座の概要を説明。講座は

  • Python(パイソン)言語の学習
  • ニューラルネット・深層学習のプログラミング

の二本柱からなります。

Preview 04:31

このコースの講師の自己紹介です。この講座はニューラルネットや深層学習がなかなか難しくて理解が難しいと考えている方をサポートすることができればという思いで作られています。

Preview 05:15

この講座全体の内容について説明します。この講座は大きく分けて4つの柱からなっています。

それぞれの内容と学習方法について説明します。

Preview 04:54
+ Python入門
42 lectures 03:09:16

プログラミングについて学ぶ前に、まずはPython言語とはどういう言語かについて説明します。

Python言語には2系統、3系統という二つの系統がありますが、ここでは3系統を用います。

そして、開発環境としてAnacondaを入手します。その中のIDE(統合開発環境)であるSpyderを用います。

ここではそれらのツールのダウンロードまでを説明します。

Preview 04:08

Anacondaの中のアプリであるSpyderを使って実際に簡単なプログラムを入力・実行してみます。Pythonプログラムを実行する方法は大きく分けて、コンソールから直接入力する方法と.pyファイルを実行する方法があります。今回はコンソールから直接入力する方法について学びます。

Preview 03:57

ここでは実際にSpyderのコンソールを使ってprint()関数を用いた様々な処理を実際に実行してみます。

"Hello World"の表示から始まり、簡単な四則演算を試してみることにします。


Preview 03:06

変数(へんすう)と演算の処理について説明します。変数はプログラミングにおいて最も重要な概念の一つで値やデータを言える器です。数値や文字列などを入れて様々な演算や処理に用います。

Preview 05:45

実際に変数を用いた様々な演算について説明します。コンソールを用いて歌い敵に計算などの処理を行う実例を説明します。

Preview 02:53

続いて変数を用いたより複雑な演算について説明します。代入演算子(だいにゅうえんざんし)は、複雑な代入処理をシンプルにしてくれます。また、()を用いることにより演算の優先順位を変えることが出来ます。

変数と演算②(説明編)
03:16

実際にSpyderを使い代入演算子と()による演算を試して見ます。手順で通りに手元で色々試してみてください。

変数と演算②(実践編)
03:25

Python言語の説明として正しいものを選びなさい

Python振り返り①
8 questions

Spyderを用いて、Pythonのソースコード(,pyファイル)を実行する方法について説明します。

プログラムの入力方法から実行方法までを動画で説明します

.pyファイルの入力と実行
04:49

分岐処理(ぶんきしょり)とは条件によってプログラムの流れを変えることです。

if文は条件分岐の基本です。ここではif文の基本を説明します。

Preview 06:00

実際に分岐処理について説明します。

if文を用いたサンプルプログラムを実際に実行してみましょう。

Preview 05:49

続いて条件分岐の更に複雑なケースについて説明します。elseを用いると、ある条件が成り立たなかった場合についての処理いついても言及できます。

また、elifを用いれば複数の選択肢を持つ条件分岐を作ることができます。

分岐処理②(説明編)
04:45

else,、elifを実際のサンプルで体験してみます。elifのサンプルでは、数値が偶数か奇数カの判定を、elifのサンプルでは、数値が正、負、0のいずれかの判定をしています。

分岐処理②(実践編)
04:17

分岐処理の3回目です。if文のネストと複数の条件の処理について説明します。


分岐処理③(説明編)
04:47

様々な複雑な分岐処理を体験してみましょう。

実際にソースコードを動かしてみてください。

分岐処理③(実践編)
05:39

分岐処理に関する知己式を簡単なクイズでふりかえります。

分岐処理
2 questions

繰り返し処理の基本について説明します。

繰り返し処理とは文字通り、指定した回数、もしくはある一定の条件が成り立っている間処理を繰り返すことです。

繰り返し処理はwhile(ホワイル)文とfor(フォー)文がありますが、ここではwhile文について説明します。

繰りかえし処理①(説明編)
05:08

実際に簡単なwhileループの事例を紹介します。

数が増えていく事例と減っていく事例について詳しく説明していきます。実際にソースコードを動かしてみて試してみましょう。

繰りかえし処理①(実践編)
04:09

繰り返し処理の例として無限ループ多重ループについて説明します。

無限ループとは無限に処理が終わらない繰り返し処理のことで、多重ループはループの中にさらにループがあるようなループのことです。


繰りかえし処理②(説明編)
02:58

無限ループと多重ループの実際のサンプルを実行してみます。

繰りかえし処理②(実践編)
02:49

whileをはじめとする繰り返し処理は、break(ブレイク)continue(コンティニュー)を使うと流れを帰ることができます。breakを使えばループから抜けることが、continueを使えばループの先導に戻ることができます。

繰りかえし処理③(説明編)
02:21

breakとcontinueの処理を実際に見てみます。

breakでループから抜け、continueはループの戦闘に戻ります。

繰りかえし処理③(実践編)
02:29

データ構造のうちもっとも頻繁に利用されるlist(リスト)について説明します。

リストは大量のデータを番号をつけて管理をすることができます。

その上、データの追加・挿入・削除などが簡単にできる非常に便利なデータ構造です。

データ構造①(リスト:前編)(説明編)
05:09

listの説明の実践編です。

今回は.pyファイルのソースプログラムではなく、実際にコンソールに入力するデータをテキストデータとしてダウンロードして下さい。



データ構造①(リスト:前編)(実践編)
03:11

データ構造のlistは、for文によって繰り返すことができます。

ここでは、listと組み合わせる方法と、それ以外のループの作り方(range関数との組み合わせ)を説明します。

データ構造②(リスト:後編)(説明編)
03:29

for文を用いるサンプルを実際に実行してみます。

listのみならず、range関数とセットでも繰り返し処理を行うことができます。

データ構造②(リスト:後編)(実践編)
02:34

データ構造のタプル(tupple)集合(set)を説明します。タプルはリストの簡易版のようなデータ構造でスピードは速くメモリ消費も少ないのですが、値を書き換えることはできません。

集合は数学の集合の概念のように、集合演算を行うことができます。

データ構造③(タプル・集合)(説明編)
06:08

タプルと集合を使ったプログラムのサンプルを紹介します。


データ構造③(タプル・集合)(実践編)
05:02

データ構造の辞書について説明します。辞書とは、キーと値の組み合わせのデータ構造です。

リストの添え字の部分が任意のデータにかわるようなものです。

データ構造④(辞書)(説明編)
04:37

実際に辞書を使った簡単なプログラムのサンプルを紹介します。

データ構造⑤(辞書)(実践編)
04:26

ある程度実用的なプログラミングをするのには欠かせない関数(かんすう)の概念とその記述方法について説明します。関数とは、ある処理の塊で同じようなことを繰り返さなくてはならないときには大変便利です。

関数には引数(ひきすう戻り値がありますが、場合によっては省略することもできます。

Preview 07:25

複雑な修理をひとまとめにしてくれる関数(かんすう)について説明します。関数を用いれば複雑な処理も頻繁に用いる処理も、簡単にひとまとめにしてくれます。

関数には引数(ひきすう)戻り値がありますが、省略することも可能できます。

Preview 05:12

関数の応用編として可変長引数(かへんちょうひきすう)という概念について説明します。

通常引数の数は関数ごとに決まっていますがこれを自由に設定できるのが可変長引数です。

可変長引数には大きく分けて、タプルを用いるものと、辞書を用いるものに分かれます。

関数②(説明編)
04:52

可変長引数の実際のサンプルを紹介します。

関数②(実践編)
02:42

プログラムがある程度長くなってくると複数のファイルに分割する必要があります。そこで、Pythonにはプログラムをモジュール(moduleという単位に分割する機能が用意されています。

ここではモジュールの概念とその使い方について実際に説明していきます。

モジュール①(説明編)
05:20

実際にpythonのモジュールを使ったサンプルを紹介します。モジュール全体をimportする方法と、個別のモジュールだけをimportする方法の両方を紹介します。

モジュール①(実践編)
06:27

モジュールの上位概念であるパッケージ(package)について説明します。

実用的なPythonプログラムを作成するためには様々なパッケージを利用したり、場合によっては自分で作らなくてはなりません。ここでは基本的なパッケージの造り方とその利用の方法について説明します。

モジュール②(説明編)
07:33

実際にパッケージを利用する方法について説明します。パッケージの利用において大事なのは__init__.pyと言うファイルです。この設定方法によってパッケージ内のモジュールの利用の仕方が決まってきます。

ここで追加されているサンプルは、ダウンロードする際に.zipでパッケージファイル(pkg.zipおよびpkg2.zip)を追加して有りますので、利用する際には解凍してからスクリプトファイルmodule05.pyおよびmodule.py同じディレクトリにおいてください。

モジュール②(実践編)
05:57

今回からオブジェクト指向と言う内容について説明します。

オブジェクト指向はプログラムの単位をオブジェクト(Object)と呼ばれるもので考えるプログラミング技法です。このオブジェクトは、クラス(class)と呼ばれる設計図により生成されます。

ここではオブジェクト指向の考え方とクラスの構造について説明します。

Preview 06:11

クラスをもとにインスタンスを生成し、実行する方法とその仕組みについて説明します。

クラスが生成されるとまずコンストラクタが実行されます。その後メソッドを操作するなどしてインスタンスに対する処理を行います。

オブジェクト指向②(インスタンスの生成)
03:54

クラスがあれば複数のインスタンスを生成することができます。人が異なれば名前が違うようにインスタンスが異なれば同じクラスから生成されたインスタンスでもメソッドの実行結果が違ってきます。


オブジェクト指向③(複数のインスタンス)
03:21

実際にクラスとオブジェクトのサンプルを通してオブジェクト指向プログラミングを体験してみましょう。

オブジェクト指向①~③(実践編)
03:04

オブジェクト指向もいよいよ大詰めです。最後のテーマは継承(けいしょう)です。継承を用いると、あるクラスの機能を受け継いだ新しいクラスを定義することができます。

オブジェクト指向④(継承)(説明編)
05:38

継承を使ったサンプルプログラムを実際に実行してみます。

オブジェクト指向④(継承)(実践編)
04:34
+ 人工知能とは何か
47 lectures 04:02:42

機械学習やニューラルネットについて学習する前に、そもそも人工知能とは何かと言うことについて説明します。人工知能の簡単な歴史と、その問題点であるフレーム問題について説明します。

Preview 06:04

人工知能の限界と言われるフレーム問題について説明します。

かつてはこれによって、人工知能はこれ以上発展しないとされていました。

人工知能入門②(フレーム問題)
06:36

現在進行中の第三次AIブームとその内容について説明します。

この段階の最大の特徴は人工知能が実用化の段階に入り商用利用が盛んになっているということと、技術が飛躍的に発展したことが特徴です。

人工知能入門③(第三次AIブーム)
05:34

人工知能はそのレベルに応じて4つのレベル(考え方によって5つのレベル)に分類されます。

ここではどのような分類方法があるかと言うことと将来の課題について説明します。

Preview 03:50

チューリングテストとは人口知能の評価に使われるテスト方法です。

つい最近までこのテストに合格する人工知能は存在せず、無理だといわれてきましたが、近年、その常識を破る驚くべき事件が起こりました。

Preview 04:32

2,045年を境にAIと人間の立場が逆転する…それがシンギュラリティといわれる問題です。

果たしてそのようなことは起こるのでしょうか?

人工知能⑥(2045年問題とシンギュラリティ)
04:27

機械学習と言うキーワードは近頃あちこちで聞かれるようになりました。しかし、果たしてそれはどういうものなのか、理解できる人は意外と少ないのです。

Preview 02:17

機械学習の一つである教師あり学習について学習します。供し有り学習は大きく分けて回帰問題(かいきもんだい)分類問題(ぶんるいもんだい)に分けられます。

機械学習とニューラルネット②(教師あり学習)
05:34

機械学習のうち教師なし学習と強化学習について説明します。

機械学習とニューラルネット③(教師なし学習・強化学習)
03:02

機械学習の有力な手段であるニューラルネットワーク(neural network)について説明します。

ニューラルネットは脳の仕組みを模倣したものであり、起源は1943年の人工ニューロンにさかのぼります。

機械学習とニューラルネット④(ニューラルネットとは何か)
06:27

ヘッブの学習則をもとに考えられたパーセプトロンは、人工ニューロンを2層にしたもので、人工ニューロンの考え方を改良したものです。

多くの問題を解決することができますが、解決できるもんだはあくまでも線形問題だけと言う制限があります。

Preview 04:29

単純な2層のパーセプトロンの問題点を克服することに成功したのが誤差伝播法(バックプロパゲーション)と呼ばれる方法です。

誤差伝播法では、入力のフローとは逆方向に誤差を修正するための信号を送り重みを調整してより正確な処理ができるようにします。

機械学習とニューラルネット⑥(バックプロパゲーション)
05:10

いよいよニューラルネットワークを使ったアルゴリズムである深層学習(DeepLearning)について説明します。なぜこの方法が機械学習の手法の中で最も強力なのか、そしてどのような仕組みになっているかについて説明します。


深層学習とニューラルネット⑦(深層学習)
06:42

ディープラーニングの一つであるCNN(Convolutional Neural Network)について説明します。主に画像処理などの分野で活用されている手法なので、画像認識を例に挙げてアルゴリズムの特徴について説明します。

深層学習とニューラルネット⑧(CNN)
05:22
深層学習とニューラルネット⑨(RNN)
04:31

ここから本格的にニューラルネットをはじめとする機械学習のプログラミングに入ります。まずは環境構築が必要なので、そこで必要となるらいぶらっり全般について説明します。

ニューラルネットの数学的基礎①(使用するライブラリ)
08:59
ニューラルネットの数学的基礎②(pip・説明編)
03:35
ニューラルネットの数学的基礎②(pip・実践編)
03:54

numpyを使ってニューラルネットワークに必要な最も基本的な数学であるベクトルを計算する方法について学習します。

numpyを使うにはまずパッケージのインポートが必要となります。

ニューラルネットの数学的基礎③(ベクトル・説明編)
06:16

一切にSpyderを使ってベクトルの計算処理を試してみます。二次元・三次元のベクトルを例に挙げて、様々な演算を行います。


ニューラルネットの数学的基礎③(ベクトル・実践編)
03:17
ニューラルネットの数学的基礎④(行列・説明編)
03:40

実際にnumpyを使って行列の計算をやってみます。行列同士の演算、ベクトルと行列の演算の処理方法について説明します。

ニューラルネットの数学的基礎④(行列・実践編)
03:12

matplotlibはnumpyでグラフを出力するためのライブラリです。ここではライブラリの簡単な使い方と、サンプルを説明します。

Preview 03:38

実際にmatplotlibを使ってグラフを出力するサンプルを紹介します。実際に入力して実行してみましょう。

Preview 04:24

ニューラルネットで用いる活性化関数(かっせいかかんすう)を紹介します。活性化関数には様々な種類が有りますが、主要なものを取り上げその性質について説明します。

ニューラルネットの数学的基礎⑥(活性化関数・説明編)
04:49

matplotlibを用いて実際に活性化関数を描画してみます。プログラムを通して関数の性質を理解しましょう。

ニューラルネットの数学的基礎⑥(活性化関数・実践編)
06:04

ニューラルネットを記述する数学的な基礎の説明は一通り終了しました。ここからは、実際にパーセプトロンをPythonのみでプログラミングをしてみます。パーセプトロンはニューラルネットの基本の基本です。まずはここから基本的なニューラルネットのプログラムの仕組みを学びましょう。

ニューラルネットの数学的基礎⑦(パーセプトロン・説明編)
07:25

パーセプトロンのプログラムを実際に自分で実装してみます。

プログラムの中身の詳細を解説します。

ニューラルネットの数学的基礎⑦(パーセプトロン・説明編)
16:08
ニューラルネットの数学的基礎⑧(パーセプトロンの限界)
03:41

次はPythonで多層ニューラルネットを構築する方法について説明します。

多層ニューラルネットはパーセプトロンよりも複雑ですが、頑張って学習してみてください。

ニューラルネットの数学的基礎⑨(多層ニューラルネット)
10:15

多層ニューラルネットをPythonのみで実装します。

コードの簡単な説明をしています。

ニューラルネットの数学的基礎⑨(多層ニューラルネット)
11:51

ニューラルネットはパーセプトロンよりも便利ですが、できることも限られています。

個々ではニューラルネットの限界と深層学習の必要性について説明します。

ニューラルネットの数学的基礎⑩(ニューラルネットの限界とまとめ)
05:16

Pythonのみで機械学習を記述するのにはどうしても限界があります。ここからは、Tensorflow+Kerasを用いて機械学習を実装していく方法について説明していきます。

Preview 03:02

開発に必要なモジュールやパッケージをインストールします。Anacondaんは、pipよりも便利なパッケージ管理ツールであるcondaがあります。ここではその使い方を説明します。

Tenforflow+Kerasで深層学習(condaでインストール)
01:31

ここからは実際にTensorflow+Kerasを用いて様々なニューラルネットワークのサンプルを紹介していきます。第一回はアヤメの分類のデータをもとに教師つき学習の練習をしてみます。

Preview 04:11

実際にアヤメの分類のデータを取得してみてみる方法について解説します。アヤメの情報を入手し、使用する方法について説明します。

Tensorflow+Kerasで深層学習②(アヤメの分類②(説明編))
02:05

関連するパッケージをインストールした後に、実際にアヤメのデータを取り込んで中身を確認してみます。

Tensorflow+Kerasで深層学習②(アヤメの分類②(実践編))
02:13

アヤメのデータを元に学習モデルを構築します。前150個のデータのうち、120個を学習用に、30個をテスト用に分けます。

Tensorflow+Kerasで深層学習③(アヤメの分類③(説明編))
05:52

実際にモデルを構築するまでの処理をやってみます。モデルを構築・コンパイルし、テストができる状態にまでもっていきます。

Tensorflow+Kerasで深層学習③(アヤメの分類④(実践編))
02:15

実際に学習とテストをする方法を紹介します。学習のサンプルでは、アヤメのデータ120個のデータを100回学習させます。残りの30個の情報をテストに用います。


Tensorflow+Kerasで深層学習④(アヤメの分類④(説明編))
02:38

実際に学習とテストをやってみます。プログラムを動かしながら実際に学習とテストをやってみます。

Tensorflow+Kerasで深層学習④(アヤメの分類④(実践編))
02:36

モデルや学習データを作成しても、そのままではデータが消えてしまいます。ここではモデルおよび学習データの保存方法について説明します。

Tensorflow+Kerasで深層学習⑤(アヤメの分類⑤(説明編))
04:26

モデルの学習データとモデル自体の保存・読み出しを実際にやってみます。

Tensorflow+Kerasで深層学習⑤(アヤメの分類⑤(実践編))
03:13

次からはいよいよ、Tensorflow + Kerasで深層学習を記述していきます。例としてMNINSTあらダウンロードできる画像データを取り上げます。MNINSTには0から9までの手書きの画像データと、その数値の内容蛾セットになったデータセットで、中身も学習用とテスト用にあらかじめ分かれています。

Preview 04:54

実際にTensorflow + Kerasを用いたMINST学習のためのCNNの構築のサンプルを見てみます。

※動画中4:48から始まるMaxPoolingの画像に誤りがありましたので、訂正画像を追加して有ります。こちらをご参考ください。

Tensorflow+Kerasで深層学習⑦(CNNの構築(説明・編))
12:03

CNNの内容についてのまとめです。

まだまだ深層学習についてはスタート段階といったところですが、これで今後深層学習について本格的に学ぶには十分な基礎知識が身についてます。

Tensorflow+Kerasで深層学習⑦(CNNの構築実践編))
08:42

最後まで学習お疲れ様でした!

ここまでで深層学習やニューラルネットの学習の基本です。本当の学びはこれから始まります。

皆さんの検討をお祈りします。

講座を終えるにあたり
02:00
Requirements
  • 初歩的なPCスキル
  • 高校レベルの数学知識
Description

近頃話題の人工知能(じんこうちのう)学習(しんそうがくしゅう)について興味があり、仕事や学習に活かしたい、そう考えている学生や社会人のためのやさしい入門講座です。

「今流行の深層学習や、Python言語を勉強したい」

と思って挫折した経験はありませんか?

実際に専門書を開いてみると難しい専門用語や数式が羅列されて、「とても自分には理解できない」と諦めた人も少なくないのではないでしょうか。

しかし、プログラミングの経験が無くても数学的知識が無くても心配要りません。

専門の研究者やデータサイエンティストにでもなるのならともかく、人工知能や深層学習のプログラミングは、高校レベルの数学知識で十分間に合うからです。

あとは、パソコンを操作できる知識があれば十分です。

学習終了後には、Python言語のプログラミングスキルと、人工知能プログラミングが身につけられます。

扱う分野は

・CNN

・RNN

・機械学習

・AI(人工知能)

です。これらについて学習したいかた、もしくは一度学習しようとして挫折してしまったかた。ぜひこの講座でトライしてください!


Who this course is for:
  • 人工知能や深層学習について学びたい人ならどなたでも
  • 特に一度学習したが挫折した経験がある人
  • 数学はあまり得意ではないが、ディープ・ラーニングにチャレンジしてみたい人
  • プログラミングは初心者だが、人工知能のシステムを作ってみたい人