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

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

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

機械学習

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

Python

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

Q&A

解決済

2回答

1438閲覧

Pythonで計算したNNWの学習結果について

jonaromu

総合スコア7

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/04/17 01:31

過去の気象データを機械学習させて,その学習結果をもとに日々の気温と湿度を予測する,というニューラルネットワークによる予測プログラムを,O'REILLYの参考書を見ながら下記のように作成しました.
➀ニューラルネットワークのデータ範囲,中間層,出力層の定義
nn=nl.net.newff([[min, max]], [6, 1])
➁学習アルゴリズムとして最急降下法(train_gd)を選択する
nn.trainf=nl.train.train_gd
➂学習データを用いて機械学習する
error_progress=nn.train(data, label, epochs=2000, show=100, goal=0.01)
dataとlabelが学習データ,イタレーションを2000回,誤差表示を100回間隔,収束誤差を0.01という学習条件です.
➃学習結果を用いて予測する
output=nn.sim(data)
➄学習データと予測結果を散布図で表示する
plt.scatter(data, labels) → 学習データ
plt.scatter(data, output) → 予測結果

以上の➀~➄ステップまでのプログラムですが,うまく機械学習できており,特に問題はありません.
ただ,ここで疑問があるのは,一旦Pythonを閉じてしまうと,再度Pythonを立ち上げた場合に,再度➀から計算しなくてはならないのか,ということです.
例えば,➀~➂までの学習結果を記憶させておき,その後は➃と➄のみを実行して予測する,というようなことは可能なのでしょうか.
学習データを更新する場合は➀から実行する必要がありますが,頻繁に更新する必要がない場合,再度➀から計算するのは非効率だと思いました.学習データが膨大な場合などは,切実な問題かと思います.

おそらく,私が知らないだけだと思いますが,みなさんは,どのようにされているのか,ご教授いただけると助かります.

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

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

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

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

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

guest

回答2

0

ベストアンサー

可能なのでしょうか.

可能です。学習結果の実態はネットワークの各層の重みパラメータなので、それをファイルに保存しておいて、使用するときに読み込めばよいです。
TensorFlow や Pytorch などは保存、読み込みをする関数が用意されています。

書籍の自作コードだと、そのやり方まで記載がないかもしれませんが、実用上は TensorFlow、Pytorch といったライブラリを使うことになるので、特に問題ないかと思います。

投稿2020/04/17 02:13

tiitoi

総合スコア21956

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

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

jonaromu

2020/04/17 03:48

tiitoi様 いつもご返答,ありがとうございます. 早速,TensorFlowとPytorchのライブラリを調べてみます. まずは,取り急ぎお礼まで
guest

0

tiitoi様の助言を参考にして調べると,学習結果の重みを出力する方法はいろいろとあるようです.
一例として,下記のURLを記載しておきます.

https://qiita.com/cometscome_phys/items/e3baeb3be227c41f1d0e

非線形関数をNNWで学習するコードですが,中間層と出力層の重み係数を下記のようにして出力しています.
W = sess.run(hidden1.weights)
print(W)
a = sess.run(outlayer.weights)
print(a)

投稿2020/04/22 00:48

jonaromu

総合スコア7

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問