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

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

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

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

機械学習

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

Q&A

2回答

3356閲覧

機械学習のiteration = step ?

IS.SEKI

総合スコア28

深層学習

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

機械学習

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

0グッド

0クリップ

投稿2018/05/04 23:34

機械学習の初心者です。

この掲示板の他の記事からしますと
機械学習のiteration と step とは同じ概念みたいですけれども、これはどういう事でしょうか。

言葉としてiterationは繰り返しでstepと全然違うような感じですね。

それからNN学習の基本原理からすれば、
一つのinputサンプルに対してNNの係数最適化計算(更新)を行いますが、
mini-batchだと、mini-batch(複数のサンプル)で一回の係数更新を行うようで、
どうやって複数のサンプルを使って一回の係数更新を行うのでしょうか。

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

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

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

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

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

tachikoma

2018/05/05 01:06

NN学習の基本原理ってなんですか?
guest

回答2

0

IS.SEKI様 2018/0529 00:40のコメントに対する返信です。
擬似コードを書きたかったので、新規の回答とさせて頂きます。

なので、その論文の"16回のiteration"はどういう意味でしょうか。
あるいはその"16"はなんの数字でしょうか。

「16個のそれぞれ異なるmini-batchに対する処理」という意味でした。
16という値には、それほど深い意味は無かったと記憶しています。

C++言語風の擬似コードで書くと、下記のような流れです。

C++

1初期化; 2 3for( int i = 0; 終了条件を満たすまで; i++ ) { 4 5 // 1stepの処理 6 for( int j = 0; j < 16; j++ ) { 7 8 // 1iterationの処理 9 mini-batchを生成し、勾配計算と係数更新を行う; 10 11 } 12 13}

投稿2018/05/29 21:30

rtr1950x

総合スコア298

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

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

oookabe

2018/07/29 16:14

"step"のこのような使い方は紛らわしいですね。 このジャンルでは教科書的に、stepとは最適化更新1回のことを指しますね。 rtr1950xさまが挙げられたコード例の中の『1stepの処理』は、通常の『1epoch』に相当すると思います。
rtr1950x

2018/07/30 06:57

>『1stepの処理』は、通常の『1epoch』に相当すると思います。 その通りだとは思いますが、該当の論文では1epochとしては扱われていませんでした。 詳細は忘れてしまったのですが、そういう使われ方もする、という一例として挙げさせて貰いました。
guest

0

機械学習のiteration と step とは同じ概念みたいですけれども、これはどういう事でしょうか。

言葉としてiterationは繰り返しでstepと全然違うような感じですね。

「iteration=繰り返し」「step=繰り返した回数」と理解すれば、同一の概念と理解しやすいかと思います。

それからNN学習の基本原理からすれば、
一つのinputサンプルに対してNNの係数最適化計算(更新)を行いますが、
mini-batchだと、mini-batch(複数のサンプル)で一回の係数更新を行うようで、
どうやって複数のサンプルを使って一回の係数更新を行うのでしょうか。

まず、N個のサンプルからなるmini-batchを考えます。
この時、mini-batchのi番目(0≦i<N)のサンプルから計算した勾配をg(i)とします。

mini-batchで係数更新を行う際は、まずg(0)~g(N-1)を個別に計算し、それらを合算していきます。
最後に、合算した勾配をベースに係数更新をすれば、1つのmini-batchに対する処理は完了します。

投稿2018/05/21 03:51

rtr1950x

総合スコア298

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

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

IS.SEKI

2018/05/28 01:39 編集

ご説明は非常に明晰で有難うございます。 『1つのmini-batchに対する処理は完了します。』とは一つの『step』や「iteration」というですね。 要は『step』も「iteration」も、NN係数の"一回"の更新の事だと理解していますが、大丈夫でしょうか。
rtr1950x

2018/05/28 08:13 編集

> 要は『step』も「iteration」も、NN係数の"一回"の更新の事だと理解していますが、大丈夫でしょうか。 はい。基本的にはその理解であっています。 混乱させるといけないかと考えて回答には書きませんでしたが、厳密に言えば「step」や「iteration」の意味は何かで定義されている訳ではありません。 私が以前読んだ論文には「1stepは16回のiterationからなる」との記述がありました。 これは、「1iteration=1つのmini-batchに対する処理(勾配計算と係数更新)」「1step=16iterationの処理」という意味でした。 という訳で、正確な意味は「文脈依存」という事になります。基本的には「step=iteration」ですが、違う場合もある、と理解されると良いかと思います。
IS.SEKI

2018/05/28 15:40 編集

rtr1950xさま お世話になっております。 ご教授有難うございます。 「iteration」は曖昧な処があるかもしれませんが、 「step」に関して、勾配降下法などで目標関数を最大・最小化するための数式の中に明確な定義があると思います(それに学習係数が掛けられます)。 >>論文には「1stepは16回のiterationからなる」 自分は1つのmini-batchでも一つのsampleの如く、一回のNN係数更新に対応すると認識しています。 即ち、mini-batch中の個々sampleに対する訓練誤差が「総合・まとめ」され、一回のNN係数更新にしか貢献しないと思います。 なので、その論文の"16回のiteration"はどういう意味でしょうか。 あるいはその"16"はなんの数字でしょうか。 また宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問