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

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

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

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Python

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

Q&A

解決済

1回答

2004閲覧

ニューラルネットワークの学習における学習データ数と素子数の関係について

iyuto

総合スコア12

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Python

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

0グッド

0クリップ

投稿2019/02/11 06:20

現在C言語で入力層5,中間層3,出力層5のニューラルネットワークを作成しました.
また,学習時に用いる学習データが20セットあります.

20セットの学習データを用いて,作成したニューラルネットワークに学習させると,20セットのデータの出力はそれぞれの教師データに近くなるはずですが,どの学習データもある一つの値になってしまいます(それぞれの教師データの値に近くならない).
あらゆる値を表現できないのだと考え,中間層の数を10や20に変えるとより,それぞれの教師データに近い値が出るようになりました.

昔,誰かに学習データ数が少ない時は素子数の数はあまり増やしては行けないと言われました.
(連立方程式で考えると,未知の変数が2つある場合は,式の数も2つ必要であるということです)
これって,正しいのですか?
中間層を増やすなら学習データも増やさなきゃですか?

些細なことでもいいのでどなたか教えていただけたら幸いです.
よろしくお願いします!!

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

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

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

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

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

stdio

2019/02/11 06:34

C言語のみならJavaやPythonのタグを消してもらってよろしいでしょうか? 中間層を増やすなら学習データも増やさなきゃですか? 当たり前と言えばあたり前ですね。
iyuto

2019/02/11 06:46

ありがとうございます 当たり前ですが,これは質問にも書かせていただいたように(連立方程式で考えると,未知の変数が2つある場合は,式の数も2つ必要であるということです)が言えるからですか?
stdio

2019/02/11 06:54

はい。 連立方程式で考えると、未知の変数が2つある場合、式の数は2つ以上必要が言えますね。
guest

回答1

0

ベストアンサー

(連立方程式で考えると,未知の変数が2つある場合は,式の数も2つ必要であるということです)
これって,正しいのですか?

ニューラルネットワークの損失関数の最小化は勾配法で行うため、連立方程式を立てて解析的に解いてるわけではありません。

昔,誰かに学習データ数が少ない時は素子数の数はあまり増やしては行けないと言われました.

学習データに対してパラメータが多すぎると過学習する傾向があるので、その認識は合っています。しかし、逆にパラメータが少なすぎるとデータの特徴を捉えきれず、これも精度が出ないパターンになります。
この値は問題設定によるので、適当に変えながら、精度が出る値に調整してあげてください。

投稿2019/02/11 13:04

tiitoi

総合スコア21956

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

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

iyuto

2019/02/11 14:21

ご回答ありがとうございます.では,学習データ数と素子数に直接的な関係はないと言うことでよろしいですか??ただ,多すぎると過学習してしまうよと言うことですよね?
tiitoi

2019/02/11 22:49

関係はありますけど、学習データの数 < 学習パラメータだと駄目であるとかなにか明確な基準があるわけではないです。
iyuto

2019/02/12 15:07

分かりました,ありがとうございます.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問