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

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

ただいまの
回答率

90.51%

  • 機械学習

    684questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • TensorFlow

    675questions

  • 深層学習

    146questions

『validation accuracy』と『training accuracy』?

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 415

IS.SEKI

score 15

NNの評価指標に『validation accuracy』と『training accuracy』があるらしいですけれども
自分の理解では『validation accuracy』は複数のground truth で訓練済みのNNを検証するための行いで、恐らくその複数のground truthに対する誤差の平均値で『validation accuracy』にすると思いますが、これは概念的に理解しやすいです。

ところが、『training accuracy』は何者か、分かりません。(まだ訓練完了していないNNに対する評価指標?)
その概念と計算方法を教えていただけませんか。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

training accuracyもvalidation accuracyもaccuracyを算出しているという意味では同じものです。単純に計算するタイミングが、trainingのときとvalidationのときの相違程度の違いです。

細かいことをいうと、「trainingのとき」には、training途上とtraining処理終了時があります。前者はコスト関数の収束度の変化に対しaccuracyがどのように変化していくのかを調べるために計算します。後者は途中経過は省略してtraining処理が終了したモデルのaccuracyを算出してそれなりにうまくいっていることを評価するものです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/29 11:51

    お返答ありがとうございます。
    理解力不足で申し訳ございませんが、
    >>「trainingのとき」にはtraining途上とtraining処理終了時があります。
    ってどういう意味でしょうか。
    結局文中の「前者」と「後者」は皆「trainingのとき」の話ですね?
    そうしたら、「validationの時」とはどう区別するのでしょうか。

    もう少しご説明いただければ幸いです。

    キャンセル

  • 2018/07/30 03:28

    一般的かどうかはわかりませんが、自分は以下のような感じで使い分けるようにしています。

    1.training中にコスト関数の結果をリストに出力するのと同タイミングでtrain-dataに対するaccuracyを出力する。このコスト関数の推移とaccuracyの推移を見比べながらモデルが収束しているかどうかを判断する。
    2.上記で収束していると判断されたモデルに対しtest-dataを入力して混合行列を算出する。これによって、トータル的相違に加えて内訳(つまり間違え方)も検証しながら過学習の有無を評価する。
    3.上記で過学習とは言えないと判断された場合、その結果が偶然でないことを評価するために、validation accuracyを算出し、test-dataのaccuracyがそれなりの範囲に収まっていることを評価する。ここでいうそれなりの範囲とは、accuracyの分布(平均と標準偏差)を計算して評価する。計算時間や手間の関係で十分な計算結果数が手に入らなければMCMCあたりを使ってサンプリングすることも視野に入れる。

    キャンセル

  • 2018/07/30 13:37 編集

    R.Shigemoriさま
    ご丁寧な解釈ありがとうございます。
    トピ主じゃないのに繰り返す質問申し訳ございませんが、上記文の中の"test-data"とは
    "訓練データ以外" の『ground truth』データですね。
    これは通常"validation-data"(validationセット)と呼ばないでしょうか。
    あるいは、"validation-data"とはまた別のもの?

    ★下にあるmkgreiさまの説明文:
    『あらかじめ取っておいたvalidationセットに対して計算していす』に関しては理解しています。

    キャンセル

  • 2018/07/30 16:49

    ざっくりいうとvalidationは検証という意味しか持たないので、ご指摘の通りかと思います。ただ検証という以上、「何を検証するのか」が結構大切で、さらにいうと検証対象に応じて適切な方法を採用することはもっと大切です。
    それゆえ、あらかじめ取り分けておいたデータで計算していればvalidationであるという考え方は、検証対象が不明であること、検証対象に対し適切なデータかどうかが不明なこと、からyesとは言い難いと捉えています

    キャンセル

  • 2018/07/30 20:57 編集

    素晴らしい説明です。。。
    ほんとうの専門家と経験者でなければ、答えられない質問ですね。
    R.Shigemori様 ありがとうございました!!

    キャンセル

+2

例えば、Kerasでfitして、verbose=1にすると、以下のような出力がされます。

782/782 [==============================] - 307s - loss: 0.4601 - acc: 0.7791 - val_loss: 0.3605 - val_acc: 0.8416

accはミニバッチごとに更新されていきます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/29 11:45 編集

    お返答ありがとうございます。

    >> accはミニバッチごとに更新されていきます。
    そうですか、これは分かりやすい感じ。
    じゃあ、後ろのval_lossや val_accは『訓練が完全に完了した』後に、別途計算された指標ですよね?

    キャンセル

  • 2018/07/30 07:49

    各epochの訓練が終了した後に、あらかじめ取っておいたvalidationセットに対して計算しています。

    キャンセル

  • 2018/07/30 07:53

    https://stackoverflow.com/questions/50067924/keras-how-to-interpret-the-outputloss-acc-calculated-on-what-data-of-each-ba

    キャンセル

  • 2018/07/30 20:52 編集

    mkgreiさん、有難うございます!!

    【NOTE】
    mkgreiさまが案内されたリンクより:

    model.fit(x_train, y_train,
    batch_size=10,
    epochs=20,
    verbose=1,
    validation_split=0.08)

    に対する結果----Daniel Möller氏の解釈(笑顔が良かったので信用します):

    loss - training data, calculated every batch
    acc - training data, calculated every batch
    val_loss - test data, calculated every epoch
    val_acc - test data, calculated every epoch

    キャンセル

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    importを使わない参照方法

    現在パッケージの利用について学んでおります。 他のパッケージ内の参照方法としてimportを学んだのですが、 次の問でimportを使うな、と言われ困っています。 set CLA

  • 受付中

    SVMの評価指標

    SVMについてです. 統計解析ソフトRにて機械学習を行っています. このソフトに限ることではないのですが,SVMにおける ・Training error  ・Cross vali

  • 解決済

    androidでマルチタップのフリックを取得する方法が分かりません。

    androidでマルチタップのフリックを取得する方法がわかりません。 私はandroid開発の初心者です。言語はjavaです。 タブレット一台で六人対戦ができる簡単なゲーム(R

  • 解決済

    android 内部ストレージ ファイルリスト

    androidで内部ストレージにあるファイルリストをアプリ上に表示させるコードを書きたいのですが、ファイルリストはどのように取得すればよろしいでしょうか? どなたか詳しい方ご教授

  • 解決済

    kerasにおける深層学習の精度についてです。

     前提・実現したいこと ここに質問の内容を詳しく書いてください。 kerasを使いあるデータのクラス分類を行なっているのですが、エポックが進むごとにたまに精度が下がったりする事があ

  • 解決済

    TensorFlowでエラーが出ます

    現在tensorflowとtflearnを使用して画像の分類をしているのですが、学習を実行させようとしたところ、こんなエラーが出てしまいました。 Training sample

  • 解決済

    DNN訓練のepoch数の確定について

    皆さん お世話になっております。 Q1: まずDNNの訓練途中TEST可能かどうかに関して教えていただきたいです。 もしDNNの訓練途中でもTEST可能であれば、 自分がD

  • 解決済

    Chainer 評価の欄が空白

     前提・実現したいこと Chainerを用いて、入力画像を2つのグループに分類するCNNを作ろうと考えています。 そして、作ったモデルを評価するためにextensionsを使うつも

同じタグがついた質問を見る

  • 機械学習

    684questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • TensorFlow

    675questions

  • 深層学習

    146questions