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

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

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

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Python

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

Q&A

解決済

1回答

1861閲覧

ニューラルネットワークの重み更新に関する質問です

yamato_user

総合スコア2321

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Python

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

0グッド

0クリップ

投稿2018/01/11 04:06

ニューラルネットワークに関する質問です。
ニューラルネットワークでロジスティック回帰を実施するときは学習率や更新回数などを指定しますよね?一方、一般化線形モデルにおけるロジスティック回帰を実施するときにそのようなものを指定した覚えがありません( Rで言うとglm() )。。。

一般化線形モデルでは学習率などを設定していないんですか??それとも、内部的に何らかの処理がされているのですか??

双方の数式を示して、ご説明いただければ幸いです

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

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

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

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

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

yamato_user

2018/01/11 07:53

マルチポストの理由は、Yahoo知恵袋に専門家は少なく、stackoverflowは利用者が少ないからです。ここの利用は初めてで、早急に解決したいためにマルチポストしました。よろしくお願いいたします。次回からはteratailに一本化します
quickquip

2018/01/11 08:09

どこかで解決したら、他の全部のページにどう解決したかをちゃんとまとめればそれで十分だと思いますよ。
wakame

2018/01/11 09:42

マルチポストについてはこちらを参照してください https://teratail.com/help (他のサービスにも質問投稿をしたい(してしまった)の項目)
guest

回答1

0

ベストアンサー

一般的にロジスティック回帰する際はニュートン法を使ったほうが解を得るまでが速いのではないでしょうか。
http://thelaziestprogrammer.com/sharrington/math-of-machine-learning/solving-logreg-newtons-method

学習率というのは勾配にかかる係数のことと認識しています。
普通の線形モデルだとこの係数は最適値が決まります。

一般的なニューラルネットワークではこの係数が決まらなくて、学習率というものがあるのではないでしょうか。

投稿2018/01/11 04:21

mkgrei

総合スコア8560

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

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

yamato_user

2018/01/11 07:58

ありがとうございます。線形モデルの認識が曖昧なので、追加で質問させていただきます。「線形モデルはパラメータの一次結合」と参考書などに書かれていましたが、どこも同じような書き方でいまいちイメージがつかめません。この意味についてわかりやすく説明していただきたいです。あと、線形モデルだと一回の偏微分で、損失関数が最小になる値が求まるってことですよね?なぜ、非線形モデルでは1回の微分では求まらないのですか?
mkgrei

2018/01/11 13:18

パラメータの定数倍と足し算だけで目的関数をかけるモデルのことです。 逆にパラメータ同士の掛け算があると非線形になります。 逆数などもダメです。 共通分母を持たない分数を足し算するとめんどくさいことになることを考えるとただの足し算は簡単そうな問題に見えてきませんか。 これ以上簡単な問題は自明解を持ち始めるので、解く意味があるけど、解けるもので一番簡単なやつらのイメージです。 一次結合は線型結合の別の呼び方です。 理解すべきは線型性です。 後半の質問は把握できませんでした。 線形モデルでも偏微分一回で最小値はもとまらないと思います。 線形問題を連立方程式として捉えた時に逆行列を求めれば一回で求まるということでしょうか?
yamato_user

2018/01/12 02:18

わかりやすい回答ありがとうございます。 後半の質問の補足に関して。。。 「ニューラルネットワークでは、学習率を用いて規定の更新回数パラメータを(偏微分を使って)更新していくと思いますが、一般化線形モデルなどでは、学習率や更新回数という概念を用いていないので、1回の計算(偏微分)でパラメータの値が求まるという認識で良いですか?また、その場合、一般化線形モデルは線形モデルであるので、1回の計算で答えが出てくるということでしょうか?」 以上、わかりにくくてすいません。まだ、言葉足らずな部分があれば追記いたします。どうしても理解したいのでよろしくお願いいたします
mkgrei

2018/01/24 09:00 編集

ぼーっとしていたらだいぶ時間が過ぎてしまいました。 --------------------- 一般化線形モデルでも偏微分を使って求めることができます。 これが反復法による解法です。 ただ、実は微分可能であれば連立一次方程式に書き換えられるケースがあって、その逆行列を一回求めるだけで解が見つかることがあります。 (ただし、正則化項のノルム次第では滑らかではなくなります。) 一般化線形モデルのほうが簡単なため、わざわざ難しく解く必要性がないことが多いです。 逆行列を求めることは時間コストとしてもメモリコストとしても高い場合に反復法を使って解くことになります。 --------------------- それに加えて扱うモデルの複雑さが実はだいぶ異なります。 線形モデルで連立一次方程式を立てるということは、入力出力対を一度にメモリ上に載せることができるということです。 これに対してニューラルネットワークでは普通ではバッチ処理を行います。 これはメモリ容量による制限からくるところが大きいです。 --------------------- イメージとしては、線形モデルでは一度にすべての情報を見ているので、それらが全てうまく行くように処理することが可能であることがある一方で、 ニューラルネットワークでは一度に学習したい情報の一部分しか見ていないので、手探りで局所勾配を一歩ずつすすめることになります。 全体の情報がわかれば勾配に強い意味があるので、学習率は最適な値というものが存在します。 なので学習率などという名前では使っていません。 部分部分しかわからないのなら勾配が誤っていることも考慮して、学習率なるものを設定して変な方向に行き過ぎることを防ぎます。
yamato_user

2018/02/04 04:40

回答ありがとうございました。スッキリしました。新たなニューラルネットワークに関する質問を投稿したので、そっちらも回答いただければ幸いです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問