LoginSignup
0
0

More than 1 year has passed since last update.

勉強メモ_Pythonライブラリについて(人工知能プログラミング03回)

Posted at

はじめに

  • 情報系の学部に所属する学生です。
  • 人工知能プログラミングの授業で与えられたコードがよくわからなかったのですが、ライブラリを全部調べたら意外と分かったのでそのメモを残します。
  • 正確さに欠ける点もあると思いますが、ご了承ください。

Tensorflowについて

こちらのサイトを参考にしました。

  • Googleが開発した機械学習用ライブラリ
  • ニューラルネットワークの構築、訓練のシステムを作成するのに優れている。
    • データの読み込み、前処理、計算、上体、出力処理にテンソル(多次元配列のようなもの?)を用いる。
    • 分散学習ができるためどんな環境でも扱える。
  • 問題点
    • 分散学習の実行によって障害が起こる可能性がある。(Fault Toleranceで障害を防いでいる。)
    • ハードウェアの性能もある程度必要。

Tensorflowってテンサーフローかと思ってました(笑)正しくはテンソルフローですね。

Kerasについて

こちらのサイトを参考にしました。

  • Pythonで書かれたTensorflowまたはCNTK、Theano上で実行可能な高水準のニューラルネットワークライブラリ
  • 容易に素早くプロトタイプの作成が可能。
  • CNNとRNNの両方をサポートしている。

環境

Google Colaboratory

ライブラリのインポート

import
from tensorflow import keras
from tensorflow.keras import initializers as Init
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Activation,  Dense, Dropout, Flatten
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.regularizers import l1, l2, l1_l2
from tensorflow.keras.datasets import mnist
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.optimizers import SGD, Adam
import numpy as np

とりあえずkerasのインポート、kerasの各機能をインポート

  • initializers
    どうやら重み変数などを初期化するためのkerasライブラリ
  • Sequential
    Sequentialモデルのひな形のようなもの。.addメソッドでレイヤーの追加、compileで学習処理の設定、fitメソッドでモデルの訓練が行える。
  • Activation
    層を生成するライブラリ。使用すると出力に活性化関数を適用できる。
  • Dense
    層を生成するライブラリ。使用すると全結合層を生成する。
  • Dropout
    入力にドロップアウトを適用できる。ドロップアウトとは訓練時にランダムにユニットを欠落させること。過学習の防止に役立つ。
  • Flatten
    入力を平坦化(配列の次元を全部同じに)する。
  • BatchNormalization
    各バッチごとに前の層の出力を正規化(使いやすいいい感じの形にすること?)する。
  • l1,l2,l1_l2
    正則化に用いる。
  • mnist
    手書き数字のデータセット。
  • to_categorical
    整数のベクトルを2値クラスの行列へ返還する。Keras Documentationの例がわかりやすい。
# Consider an array of 5 labels out of a set of 3 classes {0, 1, 2}:
> labels
array([0, 2, 1, 2, 0])
# `to_categorical` converts this into a matrix with as many
# columns as there are classes. The number of rows
# stays the same.
> to_categorical(labels)
array([[ 1.,  0.,  0.],
       [ 0.,  0.,  1.],
       [ 0.,  1.,  0.],
       [ 0.,  0.,  1.],
       [ 1.,  0.,  0.]], dtype=float32)

教師信号をone-hotラベルに変換するのに便利!

  • SGD
    確率的勾配降下法を実装する。
  • Adam
    最適化アルゴリズムの一つ。今回は使われていない。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0