人工知能ディープラーニング機械学習のための数学 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
>>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) c exp(x) = exp(x + log(c)) log(c exp(x)) = log(exp(x + log(c))) log(c) + log(exp(x)) = log(exp(x + log(c))) log(c) + x = x + log(c) ゼロから作るDeep Learningの中のAffineレイヤの部分で 行列の積 X・W をXで微分したものが Wの転置行列 になっており、 X・W をWで微分したものが Xの転置になっていますがこの辺の説明がないためなぜそうなるのかわかりませんでした。 この辺は数学のどの部分をやれば理解できますでしょうか?いい参考書があれば教えてほしいです。 後同じAffineレイヤのバッチ対応版で、バイアス部分がすべてのバッチ分の加算になっていますが これってどう解釈すればいいのでしょうか? いまいちなぜすべてを加算するのか理解できませんでした。 >>823 行列 (i,j) 成分が \sum_k( x_{i,k}*w_{k,j} ) になってる事から一つ一つ計算しな。 DeepLearningを試しにやってみたいけど Chainerあたりが手軽なの? ちなみに文系の馬鹿です。 回帰分析とSVMを Pythonで試したことあります。 そんだけやってればこのスレのほとんどの人より先に行ってるぞ >>837 マジレスするとクラウドのがコスパいい 睡眠も妨げない >>839 無料がいいならGoogle Colaboratory行っとけ 速度はイマイチだがCPUだけよりはかなりマシ >>843 用途による 一般用途はAmazon、サクラ、google、Azure等 あとはサービス連携 ワトソンとか使いたいならIBM Bluemix TPUで爆速機械学習とかならGoogle Cloud Platform 個人的な意見で申し訳ないが 使いやすいのはamazon aws 価格が安いのはGoogle、IBM サクラは官公庁とかで従量課金NGとかでも相談に乗ってくれる >>844 ありがとうございます。 取引先は機械学習するのにAzuzeにしたのですが 利用料金が予想以上に高いと言ってました。 いろいろ検討してみます。 値段はAwsでもそう変わらんちゃう Googleはちょい安そう 本業の問題解決にディープラーニングを利用するかディープラーニング自体を本業とするかでクラウド使うべきかは変わる GPUぶん回すのは学習時ぐらいなので前者なら実際は学習以外の仕事が大半を占めるのでクラウドの方が安く、後者なら学習させまくるのだろうからハード買った方が安い >>847 何気に無視できないのはデータ量 訓練データや最終出力に大量のデータを保存する必要があるときはクラウドが高くつく GPUのランニングコストはさほどでもない さくらの高火力コンピューティングとかめちゃ高いよな。 あれ誰が使うんだろ? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる