人工知能ディープラーニング機械学習のための数学 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ディープラーニングで関数の先の予測はできますか? 例えばsin関数を学習する例で言えば 学習データとしてsin0~360の範囲で一度ずつ学習させますつまり、0という入力に対し0を返し,90に対し1を返すように学習させます。学習後入力データとして0~360の範囲外のデータを入力した場合どのような値が帰ってきますか? 学習してラジアン入力の方が使いやすいとか指示してくれるAIの方がうれしい 教師データの分布から外れた値を推定できないのは当然のこと ストライドを1にしたら、微小な位置に対する位置の頑健性が低くなりますよね? それと、結局>722の答えとしてはどうなりますか? プログラマーのなかには、解をひとつ見つけると、別の解の模索をしないまま、自分の知ってる1つの解だけが唯一の解だと断定したがる、頭のわるい人がいます。どうも彼らは、高校数学の知識が、まったく思考力に結びついてないらしいです。 そして、このような論理的思考力のひくい頭のわるいプログラマーにかぎって、「プログラマーには数学が重要だ! 数学教育は論理性を養う!」とか言ってたりしますので、とことん呆れます。 関係ないよ、数学は数学、といってもたいした数学をやっていないんだろうけど(笑) 狭い世界しか知らないのに微積分程度の知識で偉そうな顔をする、理解不能w courseraでMLの授業取ってるんだけど、 θ'X のoctave実装が、X * θ になってるんだけど、 どうして逆になってるの?'は転置です。 そのままθ' * X だとサイズエラーになります。 サイズを調べると、θ は 2 * 1 X は 97 * 2 でした。 Xはテストデータの行列のようです。 ちなみに最急降下法の実装です。 θ' * Xがエラーになるのは、分かるのですが、モデルではθ'Xでと書いてあって、混乱しています m×n行列とn×p行列の積がm×pになるくらい基礎中の基礎だろ 数学で良く使われる線形代数とMLのそれは違うからな >>744 それ線形代数になれてないと、本当に最初混乱するけど 冷静にサイズチェックして行列の掛け算が実行可能なやり方にすればできる 一般化して簡単化してる講義ではnx1行列のθとXを想定してるから スライドでもθ[θ1;θ2;θ3;....θi]、X[x1;x2;x3;....xi]って列ベクトル(orたまに行ベクトル)で表記してる その場合、θ' has size 1 x n、X has size n x 1になって θ' * Xで左からかける行列の列数と右の行数が一致してるから計算できる 要はθとXで内積取ればいいって考えれば,X has size m x 1、θ has size 1 x 1に インターセプト項を加えて、Xがm x n行列、θがn x 1行列になった時 これらの行列の内積を取るには、(θ' * X') or X * θを計算すれば良いと分かるっていう 講義中の線形代数のチュートリアルでやってる簡単な話になる てか俺もまだMLやってる途中なんだけど 同じ教授のディープラーニングコースの方をやり終えた人いる? いたらどの程度日本語字幕付いてるか教えてほしい 1週間の無料期間だとちょっとしか見れないだろうから 日本語字幕ありとなしじゃ倍以上理解に時間かかるわ… 行列の内積や積の意味さっぱりわからずに単に数字の操作としてしかやってないからそんなつまんないところで躓くんだろうな やっぱ線形代数の入門書ぐらいは読んどいた方がいい ■クソマウンティング警戒情報■ クラス1 大学の授業で線形代数をやっただけのおっさん クラス2 大学には行かなかったが線形代数を独習したおっさん このあたりが出没してるので気をつけましょう。 線形代数知らないと大損だよ! 人工知能 ディープラーニング 機械学習 だけじゃないよ! プログラミングでかなり重要 行列学ぶにはには画像処理がいいって、 それ一番言われてるから。 データサイエンスから派生してOPenCV 始めたけどかなり楽しいゾ。 数式見るだけより画像がどう変化するかを 確認するとアルゴリズムの意味や目的が はっきりわかんだね。 ライブラリを使うには数学知識が必須 なんだよなぁ… 例えばnumpyを使うのに行列知識ゼロじゃ 使いこなせない。 逆にnumpyを使っているうちに行列への 理解が深まるってこともあるし。 回答がつくか自信がないですがいくつか質問です @ 右上の▽E(w)の定義を教えてください A なんで式の3行目のβにはtがくっついているのですか https://i.imgur.com/cqdg8pC.jpg >>569 もちろんある程度大学の数学をやった上で言ってるんだと思うんだけど ある程度やった上での発言だとしたら頭が悪いわ >>766 >@ 右上の▽E(w)の定義を教えてください 損失関数Eの勾配 =δE/δw >A なんで式の3行目のβにはtがくっついているのですか 学習の経過に従って、mとvの寄与度を調整して学習を安定させる Aの補足 学習の初期段階でtが小さい時にmとvを調整して学習を安定させる効果がある。 この式の分母はtが大きくなるとほぼ1になりほとんど変化しなくなる。 >>766 です ありがとうございます、解決しました tが0から始まるとすればbeta^0でそっから1引いたものが分母になるから分母0にならないですか? 誤差逆伝播法では誤差が下層から上層に伝えられていく。誤差が具体的に何かと聞かれても、正解値と推定値の差を順次上層に向かって伝えられていく値としか答えようがない。 >>777 例えば畳み込み層の前がプーリング層だった場合具体的に何が誤差になりますか? 例えばMAXプーリング層では、下層から伝えられた誤差(偏微分値)を、順伝播時のMAXだったノードに伝えられる。MAX以外のノードには0が伝えられる。このようにそのノードの性質によって何が伝えられるかは変わってくる。 >>780 そのプーリング 層の前が全結合層だった場合その層での誤差は何になるのでしょう?全結合層での入力層と隠れ層の間の重みとかですか? 東京大学理学部数学科に入って、数論幾何学を勉強したい。 でも脇見恐怖症だしなぁ・・・・・。 >>781 全結合部の出力層で誤差関数で誤差を求めて後は入力側に向かってその誤差を各ニューロン毎に重み掛け算して分配していく。 分配が終わったら誤差、学習率等を使って各重みを更新。間違ってたら指摘お願いします >>783 「重み掛け算」というのが違う。どのように分配していくかは、順伝播時ノードの処理によって変化する。足し算ノードなら何もかけずに逆伝播させるし、掛け算ノードであれば逆ノードの値を掛けて逆伝播させるし。 上記についてはこのページが詳しいかな ttps://qiita.com/t-tkd3a/items/031c0a4dbf25fd2866a3 リアルプログラムでは学習した結果ってどうやって永続化してるの? ファイルに書き出すの? 基本的には各サンプルを通して損失関数を最小化するθ(重み)が学習成果なわけだから そのθをファイルに保存する 途中からの場合θのファイルをロードする モデルによって他にドロップアウトやRegularization値など自動で最適化してるハイパーパラメータがあればそれもファイルに保存する 全部チューニングの問題。その設定で精度のが上がれば、そのタスクにとっては「正しい」設定となる。 色々深層学習のライブラリ弄ってて、モデルそのものを弄りたくなってきて調べたけど 既存の深層学習のライブラリ全部、iter中に計算速度稼ぐことメインに考えてて 気軽に独自モデル試せるようなもんじゃないんだな ライブラリ使って新しいモデル作ってる研究者は低レベルで殴り合ってるわけだ ソース見てもモジュール化されすぎてて全部理解するのには相当時間かかる 独自にモデル作ってる人らには頭が下がるわ フルスクラッチでやったほうが実装そのものは相当楽だろ でも今どきフルスクラッチでDNNの新モデル作ったところで研究者には見向きもされないんだろうな 既存の数学的アプローチでは汎用人工知能は無理。 新しい数学を創造する必要がある。 人間の脳の学習能率に対して、ディープラーニングでは人間ではあり得ない量のデータを力技で教え込んでいるという現状を考えれば既存理論では実現不可能なのは明白だな 根本的にやってることが違う 数学は万物を定量化して表すもの 数学に出来ないのはヒルベルトのように、解く方法が解らない問題と 世界の誰も未だに気づいていない問題 そのうち人工知能の性能や危険性を監査する方法が必要になる 監査もAIにして相互に進化させる 人間のはるか上を行くAIになりそう >>806 >監査もAIにして相互に進化させる こういう自己学習はすべてのAIにて有効とは限らない、と思いますが NNのパラメータが十分多ければSGDでも多項式時間で最適解に収束する事が証明されたな https://arxiv.org/abs/1811.03962 ε-δ論法での「十分小さければ」みたいによくある表現だよね t分布で自由度が十分大きければ正規分布になるとか、割とあちこちで十分大きければ論法は使われる 「十分大きい」というのが現実的なサイズなら何の問題もないし非現実的なサイズなら机上の空論というだけのこと 誤差曲面には極小値や鞍点が無数にあるにも関わらず、SGDで最適解に辿り着けてしまうのは自明では無い 経験的に知られていたが謎だった事が理論的に解明された事に価値がある あと(指数ではなく)多項式時間と分かった事も大きいと思う 初歩的なもので申し訳ありませんが ゼロから作るDeep Learningの中の数式の変形で以下のような変形がありました。 どう変形したらこうなるのはわからないのですがどなたか教えていただけないでしょうか? c exp(x) = exp(x + log c) 定義から追っていけばわかるだろ? expてのはeを何回掛けたか logはその逆 exp(log c) = cはcが特殊な値でない限り常になりたつ。 exp(a)exp(b)はeをa回掛けたものにさらにeをb回掛けることになる これはexp(a+b)に等しい >>817 ありがとうございます。 言われてみればなんで気づかなかったんだろってレベルでした。 ln 左辺 = ln (c * e^x) = ln c + ln e^x = ln c + x ln 右辺 = ln e^(x + ln c) = x + ln c 高校の算数で分かる >>816 c = exp(log (c)) まずこれを理解して c・exp(x) = exp(x)・exp(log(c)) = exp(x + log(c)) >>816 exp(x + log c)=exp(x)*exp(logc) 指数法則:exp(x+y)=exp(x)exp(y) =exp(x)*c expとlogは互いに逆関数なので順番に作用させると元に戻る:x=exp(logx) ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる