見出し画像

TensorFlow

TensorFlowとは?

TensorFlowは、Googleが開発した大規模な数値計算ライブラリです。特に、機械学習、特に深層学習モデルの構築と訓練に特化しています。


計算グラフとは?

計算グラフは、数値と演算の組み合わせで表された一種のフローチャートのようなものです

  • ノード: 計算グラフの各ノードは、Tensor(多次元配列)を表します。

  • エッジ: ノード間のエッジは、演算を表します。例えば、足し算、掛け算、ニューラルネットワークの層などが該当します。

セッションとは?

セッションは、実際に計算グラフを実行するための環境です。セッションを作成し、その中で計算グラフを実行することで、具体的な数値を得ることができます。

例:計算グラフとセッション

import tensorflow as tf

# 定数
a = tf.constant(2)
b = tf.constant(3)

# 加算の計算グラフ
c = a + b

# セッションの作成
sess = tf.Session()

# 計算の実行
result = sess.run(c)

print(result)  # 出力: 5

定数の定義: aとbという定数を定義しています。

  • 計算グラフの定義: cは、aとbの足し算を表す計算グラフのノードです。

  • セッションの作成: sessというセッションを作成します。

  • 計算の実行: sess.run(c)で、計算グラフを実行し、結果をresult変数に格納します。

ニューラルネットワークとは?

ニューラルネットワークは、人間の脳の神経回路網を模倣した数学モデルです。大量のデータを学習し、複雑なパターンを認識したり、予測したりすることができます。

ニューロンとパーセプトロン

ニューラルネットワークの基本単位は(人工)ニューロンです。ニューロンは、複数の入力を受け取り、それらを重み付けして足し合わせ、活性化関数に通すことで出力値を生成します。

神経細胞ニューロンの特徴を再現された(単純)パーセプトロンという単純モデルがあります。パーセプトロンは、入力の重み付き和が閾値を超えると1を出力し、そうでなければ0を出力するような仕組みです。

多層パーセプトロン

単純パーセプトロンは入力層と出力層の2層のニューラルネットワークです。ニューラルネットワークは、複数のパーセプトロンを層状に重ねた多層パーセプトロンと呼ばれる構造を持っています。

  • 入力層: 外部からデータを入力する層

  • 隠れ層: 入力層と出力層の間にある層で、特徴抽出を行う

  • 出力層: 最終的な結果を出力する層

活性化関数

活性化関数は、ニューロンの出力値を非線形に変換する関数です。代表的な活性化関数には、以下のものがあります。

  • シグモイド関数: 出力値を0から1の範囲に収める

  • tanh関数: 出力値を-1から1の範囲に収める

  • ReLU関数: 入力値が正のときに入力値をそのまま出力、負のときには0を出力

損失関数

損失関数(誤差関数)は、ニューラルネットワークの出力と正解ラベルとの間の誤差を表す関数です。この誤差を最小化することで、ニューラルネットワークの学習を行います。代表的な損失関数には、以下のものがあります。

  • 二乗誤差: 回帰問題でよく使われる

  • クロスエントロピー誤差(交差エントロピー誤差): 分類問題でよく使われる


この記事が気に入ったらサポートをしてみませんか?