2017年07月20日

Matplotlibというライブラリを使ってPython3で簡単にグラフを描画することが出来ますね

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

Matplotlibというライブラリを使ってPython3で簡単にグラフを描画することが出来ます。

graph21.jpg

なるほど、これなら数学の学習もPythonで出来るわけだ。

このグラフを描画するプログラムは以下の通りです。

ファイル名:simple_graph.py
1 # coding: utf-8
2 import numpy as np
3 import matplotlib.pyplot as plt
4
5 # データの作成
6 x = np.arange(0, 6, 0.1) # 0から6まで0.1刻みで生成
7 y = np.sin(x)
8
9 # グラフの描画
10 plt.plot(x, y)
11 plt.show()

こんなことも出来ます。

graph3.jpg

ファイル名:img_show.py
1  # coding: utf-8
2  import matplotlib.pyplot as plt
3  from matplotlib.image import imread
4
5  img = imread('../dataset/lena.png') # 画像の読み込み
6  plt.imshow(img)
7 
8  plt.show()

まだよく分かっていないのですが、pyqt5というのを利用してグラフや画像を表示しているようです。

こりゃあ、面白い。GUIプログラムの学習にもなりますねえ。

では、また。



posted by tsurutsuru at 01:44| Comment(0) | 日常茶飯事

2017年07月18日

Python3の学習は1日で終了しました!

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

python1.jpg

機械学習プログラム言語Python3の学習は1日で終了しました。

Python3をインストールしてちょこちょことやってみましたが、特別に学習する必要がないことが分かったので1日で終了です。

異なるプログラム言語を二、三習得していたら別に学習しなくても類推で分かりますので、殊更時間をかけて学習することもありませんねえ。

分からないことが出てきたらネットで調べれはすぐ分かりますよ。

ということで本日でPython3の学習は終了です。

posted by tsurutsuru at 13:51| Comment(0) | 日常茶飯事

ディープラーニングは思っていたほど難しくありませんよ。タグチメソッドの方がよっぽど難解です。

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

deeplearning1.jpg

私の今の感想では、思っていたほどディープラーニングは難しくないなということです。

むしろディープラーニングを実行するときのハードウェア環境が一番ディープラーニングの学習で障害になるくらいです。

その考え方は思っていたほど難しくないですよ。

ただ、層が深くなったときにちょっと理解に手こずるくらいです。

理工系出身者なら誰でもそう思うのでは。

タグチメソッドの方が余程難解です。

では、また。

posted by tsurutsuru at 11:25| Comment(0) | 日常茶飯事

2017年07月17日

統計学に出てくる最小2乗法で回帰直線を求める計算が理解できれば、ニューラルネットワークは理解できますよ

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

deeplearning1.jpg
ここまで上記の本を拾い読みして分かったことは、

統計学に出てくる最小2乗法で回帰直線を求める計算が理解できれば、ニューラルネットワークは理解できる

ということです。

ですから、まず統計学の本で回帰直線を求める計算方法のところを読んで理解できるなら、ニューラルネットワークは理解できます。

なぜなら、本質的に同じことをやっているからです。

ということで、そんなに難しいことをやっているのではないことが分かります。

理工系の大学で習う数学が理解できる人なら、慣れれば、ニューラルネットワークもディープラーニングもそれほど難しく感じないのでは。

ただ、層が深くなった時に多少面倒になるようなのでそこで多少理解に時間がかかるくらいでしょう。

私のような出来の悪い頭でもそれほど難しいとは思えないので、難関大学の理工系学科出身者ならむしろ簡単に思うのではないでしょうかね。

では、これから作業を始めます。

posted by tsurutsuru at 12:57| Comment(0) | 日常茶飯事

ディープラーニングとニューラルネットワークとの関係

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

これから有名な機械学習でよく使われる(らしい)手書き認識データセットMNISTを実際に学習するプログラムを実装しようと思います。

私の場合、Pythonもインストールしないといけいないので作業は次のようになります。

(1)Pythonのインストール(ライブラリも)
(2)P112以降にあるニューラルネットワークの学習アルゴリズムを実装
(3)実際に動かして結果を得る

ちなみに、ディープラーニングとニューラルネットワークとの関係ですが、本には次のように書いてあります。

  ディープラーニングは、層を深くしたディープなニューラルネットワークです。

さて、ここでニューラルネットワークの学習の手順を確認しておきます。

(前提)ニューラルネットワークは、適応可能な重みとバイアスがあり、その重みとバイアスを訓練データに適応するように調整することを学習と呼ぶ。ニューラルネットワークの学習は次の4つの手順で行う。

〔ステップ1(ミニバッチ)〕
訓練データの中からランダムに一部のデータを選び出す。その選ばれたデータをミニバッチと言い、ここでは、そのミニバッチの損失関数の値を減らすことを目的とする。

〔ステップ2(勾配の算出)〕
ミニバッチの損失関数を減らすために、各重みパラメータの勾配を求める。勾配は、損失関数の値を最も減らす方向を示す。

〔ステップ3(パラメータの更新)〕
重みパラメータを勾配方向に最小量だけ更新する。

〔ステップ4(繰り返す)〕
ステップ1、ステップ2、ステップ3を繰り返す。


皆さん、ニューラルネットワークの学習と言ってもこれだけです。人間の脳も化学的にこれと同じことをやっているのでしょうね。

では、これから作業を始めます。早ければ明日にも結果をレポート出来ると思います。



posted by tsurutsuru at 12:35| Comment(0) | 日常茶飯事

2017年07月16日

今夜から数日をかけてPythonでニューラルネットワークの学習をやってみます

storage.mantan-web.jp_images_2017_05_21_20170521dog00m200017000c_001_size8.jpg

私はせっかちな性格で、ディープラーニングの学習をするのにディープラーニングの本を1ページ目からこつこつ学習するのが苦手です。
deeplearning1.jpg

それでいきなりやっちゃいます。MNISTという手書き認識で有名らしいデータセットを使って実際にPythonのプログラムを実装して認識させてみます。

コードは本に書いてあるので、後は私が使っているノートPCにどれほどの処理能力があるかです。

私はゲームの類はやらないのでグラフックボードを搭載しているPCは所持していません。

そんなに難しい作業でないので数日中に結果報告が出来ると思います。

それまではこのブログはお休みになります。明日は休日なのでちょうどいいですね。

面白い作業なので楽しみです。

では。

posted by tsurutsuru at 13:05| Comment(0) | 日常茶飯事