質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

770閲覧

深層学習 の Accuracy(識別率、精度) の定義がバラバラ

nagagutsu_af

総合スコア32

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2018/02/03 08:26

編集2018/02/03 08:56

CNN などにおける Accuracy (識別率)を出力する際、
ある海外サイトでは

Python

1test_acc = 0. 2test_count = 0 3for _ in range(val_batches_per_epoch):           # テスト開始 4 img_batch, label_batch = sess.run(next_batch) # 次のバッチ取得 5 acc = sess.run(accuracy, feed_dict={x: img_batch, # acc はバッチに対するテスト精度 6 y: label_batch, 7 keep_prob: 1.}) 8 test_acc += acc 9 test_count += 1 10test_acc /= test_count # テスト精度の平均を計算 11print("Validation Accuracy = {:.4f}", test_acc))

なのですが、日本のサイトのプログラムでは

Python

1 2test_accuracy = 0.0 3for i in range(test_batch):           # テスト開始 4 batch = FLAGS.batch_size*i 5 batch_plus = FLAGS.batch_size*(i+1) # 次のバッチ取得 6 test_accuracy += sess.run(acc, feed_dict={ 7 images_placeholder: test_image[batch:batch_plus], 8 labels_placeholder: test_label[batch:batch_plus], 9 keep_prob: 1.0}) 10 if i is not 0: test_accuracy /= 2.0 # 前までの平均に現在の識別率を足して 2 で割っている(???) 11print "test accuracy %g"%(test_accuracy)

となっています。変数や記述の違いはありますが、要するに、
海外では「バッチに対する精度を計算 → バッチ数分それぞれで計算して合計 → バッチ数で割って平均」としていて、
日本では「バッチに対する精度を計算 → 前の精度に現在の精度に足して 2 で割る → バッチ数文繰り返す」となっています。

個人的に日本で蔓延しているプログラムは何をしたいのか良くわかりません・・・
平均を表そうとしているのかもしれませんが、これでは平均になっていませんし、Training Accuracy もそういう計算方法になっています。
これは日本のサイトが間違っているんでしょうか?

あと、Training Accuracy(和訳わかりません) というのは、現バッチに対する訓練精度をそのまま出力するものなんでしょうか?(バッチサイズ 10 なら 0.6、0.8、0.7、0.9、1.0、1.0、1.0 ... のようになる)
それとも、現在までのエポックの精度を足し合わせて現エポック数で割ったものが Training Accuracy になるのでしょうか?

回答よろしくお願いします m(_ _)m

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

よく見たら引用元のサイト
「”バッチ毎に計算した結果を足しあわせて(平均をとって)グラフに描く”をいうことができない」
と書いてありました・・・
海外サイトが正しいみたいです。

投稿2018/02/03 09:35

nagagutsu_af

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問