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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

3191閲覧

python ニューラルネットワークへの学習について

G-apple-tmp

総合スコア11

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/11/08 11:37

挨拶と質問の概要

お世話になっております。ニューラルネットワークに学習をさせる際のモデルの挙動について質問させていただきます。具体的には、プログラム内で学習を終えたモデルが、次の学習工程に入ったときにモデルは初期化されているのか、または以前学習させたモデルが引き継がれるのか、という内容になっております。また、内容を簡潔にするため、今回の質問に必要のない内容(プログラムの引数や交差検証等)は全て省きました。
当方、機械学習については初心者であり、拙さの残る説明となってしまいますが、何卒ご容赦下さい。

質問の前提

理解のため、煩雑ではありますが前提を用意させていただきます。

ある実験を行い、そこから得たデータセットXをニューラルネットワークに学習させました。実験の被験者及びデータセットXについての情報は以下の通りです。

情報

被験者:
A, B, C

データセット内の特徴量:
X = (F1, F2) (目的変数:y)

用いたい被験者のグループ(以下、グループ):
AB = (A, B)
ABC = (A, B, C)

グループごとに抽出した特徴量:
グループ(A, B)の特徴量:ABF1, ABF2
グループ(A, B, C)の特徴量:ABCF1, ABCF2

グループごとの目的変数:
グループ(A, B)の目的変数:ABy
グループ(A, B, C)の目的変数:ABCy

これらの情報を使い、ニューラルネットワークに学習をさせます。

質問の内容

python

1from sklearn.neural_network import MLPRegressor 2 3ABX[:, 0] = ABF1 4ABX[:, 1] = ABF2 5 6ABCX[:, 0] = ABCF1 7ABCX[:, 1] = ABCF2 8 9reg = MLPRegressor() 10reg.fit(ABX, ABy) 11 12reg.fit(ABCX, ABCy)

このプログラムでは、始めにreg.fit(ABX, ABy)でニューラルネットワークにグループ(A, B)の特徴量を学習させ、その後reg.fit(ABCX, ABCy)にてグループ(A, B, C)の特徴量を学習させる、という内容になっていますが、このとき最初のreg.fitによってできたモデルは、次のreg.fitに引き継がれるのでしょうか。

このことを確かめようと考えたのですが、そもそもニューラルネットワークの学習後、スコアを出そうにもそれが果たして以前のモデルの影響でそのスコアが算出されたのか、それともそのスコアは以前のモデルには影響されず、そこで学習のために与えたデータセットによってスコアが出されたのか、どう確かめるべきか考えあぐねています。

  1. プログラム内で、学習済みのモデルは次の学習に引き継がれるのか
  2. 1.について確かめる術はあるのか

この二点について、よろしければ回答いただけないでしょうか。

ここまでご一読いただきありがとうございました。どうぞよろしくお願い申し上げます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

  1. プログラム内で、学習済みのモデルは次の学習に引き継がれるのか

sklearn.neural_network.MLPRegressor
fit() で学習する場合は前回の学習内容は引き継がれません。
一方、partial_fit() を使うと、追加学習という形になります。

  1. 1.について確かめる術はあるのか

ソートコードを見ましょう。

multilayer_perceptron.py

fit() と partial_fit() は内部で _fit() という関数を呼び出しています。
incremental=True の場合、追加学習になります。

投稿2018/11/08 12:08

tiitoi

総合スコア21956

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

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

G-apple-tmp

2018/11/08 12:14

回答頂きましてありがとうございました。お恥ずかしながら、partial_fit()というメソッドがあることを初めて知りました。改めて、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問