デジタル・デザイン・ラボラトリーな日々

アラフィフプログラマーが数学と物理と英語を基礎からやり直す。https://qiita.com/yaju

英語の勉強を継続して半年経過

はじめに

yaju3d.hatenablog.jp

ということで、毎年数ヶ月もすれば何もしないで終わっていた英語の勉強ですが、今年は続けることが出来ています。
やはり習慣化することが大事ですね、平日の会社終わりにコワーキングの「エニシア静岡 丸井店」に行って、そこで英語の勉強をしています。

ただ時間が30分~40分くらいです。確かに短いかなと思いつつも、無理なく継続することの方が大切かなと思っています。
せっかく習慣化できるようになってきたので、6月から英語以外の勉強を30分追加していきます。

何をしているか

瞬間英作文のiPhoneアプリ版を使用しており、中学3年生が終わって繰り返す段階です。
回答をノートに書いて一致しているか確認し、何か違っているのか、何でこうなるのか考えたり調べながらやっています。
まだ過去形とか複数形など見落としがありつつも正解に近づいている実感があります。

ひたすらこれをやり続けて、さっと出るようにしたいです。「例文のおかわり」の購入も考えたんですが、まだ後回しとします。
5/27からiPhoneに瞬間英作文CD2枚を入れて、通勤の車の中で聴いています。もっと早くやれば良かったかな。

英文法の整序問題で正しい順序にして英文法を作成する「英語組み立てTOWN」もやるのですが、瞬間英作文で気分が乗らない時くらいでやる頻度は落ちています。こんな簡単な英単語だらけなのに考え込みます。

次の展開

瞬間英作文と英語組み立てTOWNは引き続きやります。
今後は自宅で発音の練習をしていきます。幾つかの英語学習の本を読むと、発音が分かると聴き取りができるようになるって書いてあるので信じてやっていきます。

TOEICのテストは1回くらいは受験しておきたいので、今の予定は12月くらいですかね。
英語に慣れてきてTOEIC用の英単語を覚えるとか徐々に準備していこうかな。

海外ドラマの「フレンズ」がいいという情報がありますが、TOEIC700点レベルってことなので今の段階でやっても仕方ないかと思っていて、代わりに中身もだいたい分かるAudio版「Doraemon」を購入してみました。

books.apple.com

これは音声だけなのでAudio版「Doraemon」の本は楽天で別個に購入してあります。

8年ぐらい前に「Doraemon」のコミック版は5巻まで購入してあったんですが、これは音声がないんですよね。
Audio版「Doraemon」と内容が同じかとおもいきや違ったんです。

「Doraemon」は勉強って感じではなく、気分転換で読むイメージですね。

最後に

英語学習の記事を今後は増やしていきます。
瞬間英作文をやってて何でこうなるのか調べたりしたことをブログで書いていく予定です。

機械学習に使われる微分の数式を理解してみる(勾配降下法:確率的勾配法)

はじめに

前回の記事の続きとなります。
yaju3d.hatenablog.jp

最急降下法確率的勾配降下法の違いについては、以前に記事を書きました。
yaju3d.hatenablog.jp

参考

やる夫で学ぶ機械学習 - 多項式回帰と重回帰 - · けんごのお屋敷

パラメーター更新の式

最急降下法

前回、重回帰で求めたパラメーター更新の式です。
\displaystyle \theta_j := \theta_j - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x_j^{(i)}

最急降下法は学習データのすべての誤差の合計を取ってからパラメーターを更新します。学習データが多いと計算コストがとても大きくなってしまいます。また、学習データが増えるたびに全ての学習データで再学習が必要となってしまいます。

確率的勾配法

\theta_j := \theta_j - \eta \Biggl(f_{\theta} ({x}^{(k)}) - y^{(k)}\Biggr){x_j}^{(k)}
(式中のkは、パラメーター更新毎にランダムに選ばれたインデックス)

大きな違いとして、確率的勾配降下法ではシグマ\sum (1~nまで合計)が取れています。
その分、計算コストは少なくなる。

確率的勾配降下法は学習データをシャッフルした上で学習データの中からランダムに1つを取り出して誤差を計算し、パラメーターを更新をします。勾配降下法ほどの精度は無いが増えた分だけの学習データのみで再学習する(重みベクトルの初期値は前回の学習結果を流用)ため再学習の計算量が圧倒的に低くなります。

ミニバッチ確率的勾配降下法

\displaystyle \theta_j := \theta_j - \eta \sum_{k\in K} \Biggl(f_{\theta} ({x}^{(k)}) - y^{(k)}\Biggr){x_j}^{(k)}

ここでシグマが付くのですが、これはインデックスの集合となります。
たとえば学習データが100個あると考えた時に、m=10 だったら、K={61,53,59,16,30,21,85,31,51,10} みたいにランダムに10個のインデックスの集合を作って、パラメーターの更新を繰り返すことになります。

ミニバッチ確率的勾配降下法最急降下法確率的勾配降下法の間を取ったような形となります。 最急降下法では時間がかかりすぎ、確率的勾配降下法では一つ一つのデータにかなり揺さぶられることになるので、学習データの中からランダムにいくつかのデータを取り出して誤差を計算、パラメーターを更新をします。このときの一回に取り出すデータの数をバッチサイズと呼びます。

視覚化

※注意 これまでやってきたのは最小2乗法を用いたものでした。この視覚化についてはロジスティクス回帰となっています。
最急降下法と確率的勾配法とミニバッチ確率的勾配降下法の違いを知るだけならいいのですが、プログラムの中身はパラメーター更新と一致しないです。

下記サイトでは、最急降下法と確率的勾配法とミニバッチ確率的勾配降下法の違いを視覚化されています。
sinhrks.hatenablog.com

これを、組み直ししてみました。 qiita.com

最後に

視覚化を組み直してみたのですが内容を見ないで単純に移植してみたようなものなので、今後は視覚化したのを説明していきたいですね。
その前に、内積ロジスティクス回帰などをやっていきます。
まだ数式とプログラムを組むイメージが頭の中で一致してないので理解度が足りてないですな。

機械学習に使われる微分の数式を理解してみる(重回帰)

はじめに

前回の記事の続きとなります。
yaju3d.hatenablog.jp

参考

やる夫で学ぶ機械学習 - 多項式回帰と重回帰 - · けんごのお屋敷

重回帰

前回の多項式回帰でも、変数 x が1つだけでした。
f_\theta(x) = \theta_0 + \theta_1x + \theta_2 x^{2} + \theta_3 x^{3} + \cdot + \theta_n x^{n}

機械学習をする上で実際に解きたい問題は変数 x が2つ以上の方が多いです。
変数が3つの場合
f_\theta(x_1,x_2,x_3) = \theta_0 + \theta_1 x_1 + \theta_2 x_2 + \theta_3 x_3

一般式

変数を n 個にした場合の一般式
f_\theta(x_1,\cdots,x_n) = \theta_0 + \theta_1 x_1 + \cdots + \theta_n x_n

列ベクトル化

先程の一般式を \theta_0x を列ベクトルとして定義してみます。
\theta = \begin{bmatrix}
\theta_0 \\
\theta_1 \\
\theta_2 \\
\vdots \\
\theta_n
\end{bmatrix}
\ \ \
\boldsymbol{x} = \begin{bmatrix}
x_1 \\
x_2 \\
\vdots \\
x_n
\end{bmatrix}

\thetax の次元数が違うので揃えます。
1を追加したとしても計算上は値が変わらない。\theta_0 \times 1 = \theta_0となるため。
\theta = \begin{bmatrix}
\theta_0 \\
\theta_1 \\
\theta_2 \\
\vdots \\
\theta_n
\end{bmatrix}
\ \ \
x = \begin{bmatrix}
1  \\
x_1 \\
x_2 \\
\vdots \\
x_n
\end{bmatrix}

もう一工夫する。x_0 = 1 と定義することで、すべて x とすることができる。

\theta = \begin{bmatrix}
\theta_0 \\
\theta_1 \\
\theta_2 \\
\vdots \\
\theta_n
\end{bmatrix}
\ \ \
x = \begin{bmatrix}
x_0  \\
x_1 \\
x_2 \\
\vdots \\
x_n
\end{bmatrix}
\ \ \
(x_0 = 1)

こうすることで、\theta を転置したものと x を掛けると次のように書ける。
\theta^{T} x = \theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n

これは一般式を x_0 = 1 としたものと同じになるわけです。
そして、すべて x としたことで簡潔した式に表現できるようになるのです。
f_\theta(x) = \theta^{T} x

更新式を求める

\thetaj 番目の要素を \theta_j とすると、E\theta_j偏微分した式

\displaystyle \frac{\partial u}{\partial \theta_j} = \frac{\partial u}{\partial v} \cdot \frac{\partial v}{\partial \theta_j}

※誤解されないように最初に説明しておくと、x^{(i)}y^{(i)}i 乗という意味ではなくて、i 番目の学習用データを参照する意味である。

uv微分

uv微分するところは前々回までと同じ(再掲)

\displaystyle \frac{\partial u}{\partial v} =  \frac{\partial}{\partial v} \Biggl(\frac{1}{2}\sum_{i=1}^n \left(y^{(i)} - v\right)^{2} \Biggr)

=\displaystyle \frac{1}{2}\sum_{i=1}^n \Biggl(\frac{\partial}{\partial v}\left(y^{(i)} - v\right)^{2} \Biggr)

=\displaystyle \frac{1}{2}\sum_{i=1}^n \Biggl(\frac{\partial}{\partial v}\left(y^{(i)^{2}} - 2y^{(i)}v+v^{2}\right) \Biggr)

v微分するので、y^{(i)^{2}} は計算対象外なので除外します。

=\displaystyle \frac{1}{2}\sum_{i=1}^n \left(-2y^{(i)}+2v\right)

共通因数の -2 を前に出します。
=\displaystyle \frac{1}{2}\sum_{i=1}^n -2\left(y^{(i)}-v\right)

こうすると \displaystyle \frac{1}{2} と相殺できます。
=\displaystyle \sum_{i=1}^n -\left(y^{(i)}-v\right)

このままでもいいですが、マイナス符号を先頭に付けないようにもう一工夫します。
足し算を入れ替えても結果は変わらないので、 - y^{(i)}v を入れ替えます。

=\displaystyle \sum_{i=1}^n \left(v - y^{(i)}\right)

v=f_{\theta}(x)の定義を元に戻す。

=\displaystyle \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)

v\theta_j微分

v\theta_j微分する。
\displaystyle \frac{\partial v}{\partial \theta_j} = \frac{\partial}{\partial \theta_j}(\theta^{T} x) \\
= \displaystyle \frac{\partial}{\partial \theta_j}(\theta_0 x_0 + \theta_1 x_1 + \theta_2 x_2 + \cdots + \theta_n x_n) \\
= x_j

結果を掛ける

合成関数の微分に従って、それぞれの結果を掛ける。
\displaystyle \frac{\partial u}{\partial \theta_j} = \frac{\partial u}{\partial v} \cdot \frac{\partial v}{\partial \theta_j}

=\displaystyle \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr) \cdot x_j^{(i)}

最終的な更新式

最終的なパラメーターの更新式は下記のようになります。

\displaystyle \theta_j := \theta_j - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x_j^{(i)}

最後に

今回はここまで、次回は確率的勾配法となります。

機械学習に使われる微分の数式を理解してみる(多項式回帰)

はじめに

前回の記事の続きとなります。
yaju3d.hatenablog.jp

最終的な更新式を求めたところまでやりました。
パラメータ  \theta_0 \theta_1 の更新式は、最終的に下記のようになります。

\displaystyle \theta_0 := \theta_0 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)

\displaystyle \theta_1 := \theta_1 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x^{(i)}

参考

やる夫で学ぶ機械学習 - 多項式回帰と重回帰 - · けんごのお屋敷

多項式回帰

プロットしたデータにフィットさせる際に1次関数の場合は形が直線にしかなりません。
しかし、場合によっては曲線の方がプロットしたデータにフィットする。
f:id:Yaju3D:20190413234724p:plain

これは関数 f_\theta(x) を2次関数として定義することで実現できる。

f_\theta(x) = \theta_0 + \theta_1x + \theta_2 x^{2}

もっと大きな次数にすることも出来る。その場合はより複雑な曲線に対応できるようになる。

f_\theta(x) = \theta_0 + \theta_1x + \theta_2 x^{2} + \theta_3 x^{3} + \cdot + \theta_n x^{n}

しかし、次数を増やせば増やすほどいい感じになるわけではない。確かにフィットするようにはなるけど、過学習と呼ばれる別の問題が発生するようになる。

更新式を求める

前回と同じように v\theta_2偏微分して更新式を求めます。
\theta_0\theta_1 x は計算対象外なので除外します。残った \theta_2 x^{2}微分して x^{2} になります。

\displaystyle \frac{\partial v}{\partial \theta_2} = \frac{\partial}{\partial \theta_2} \left(\theta_0 + \theta_1 x + \theta_2 x^{2} \right) = x^{2}

最終的な更新式

最終的なパラメーターの更新式は下記のようになります。

\displaystyle \theta_0 := \theta_0 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)

\displaystyle \theta_1 := \theta_1 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x^{(i)}

\displaystyle \theta_2 := \theta_2 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x^{(i)^{2}}

これはパラメーターが、 \theta_3\theta_4\cdot と増えていっても同じような更新式になります。
ということは、j 番目のパラメーターの更新式は下記のようにできる。
x^{0} = 1 となることを利用する。

\displaystyle \theta_j := \theta_j - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x^{(i)^{j}}

このように多項式の次数を増やした関数を使うものは、多項式回帰と呼びます。

※誤解されないように説明しておくと、x^{(i)}y^{(i)}i 乗という意味ではなくて、i 番目の学習用データを参照する意味である。

最後に

今回はここまで、次回は重回帰となります。

機械学習に使われる微分の数式を理解してみる(勾配降下法:最急降下法)

はじめに

前回の記事で、シグモイド関数微分を行いました。
yaju3d.hatenablog.jp

今回は、偏微分を含んだ微分を理解していきます。
本とかだと分かっている人向けなので展開式を省略されてしまうのですが、私はあえて分かりやすく展開式を書きたいと思っています。

参考

やる夫で学ぶ機械学習 - 単回帰問題 - · けんごのお屋敷

勾配降下法

yaju3d.hatenablog.jp

数値解析の分野では勾配降下法を最急降下法と呼びますが、勾配降下法の中にもいくつかの方法が存在します。

最急降下法とは

最急降下法は学習データのすべての誤差の合計を取ってからパラメーターを更新します。学習データが多いと計算コストがとても大きくなってしまいます。また、学習データが増えるたびに全ての学習データで再学習が必要となってしまいます。

目的関数の微分方法

目的関数 最小2乗法
\displaystyle E(\theta)=\frac{1}{2}\sum_{i=1}^n \left(y^{(i)} - f_{\theta}(x^{(i)})\right)^{2}

※誤解されないように最初に説明しておくと、x^{(i)}y^{(i)}i 乗という意味ではなくて、i 番目の学習用データを参照する意味である。

この目的関数は、f_{\theta}(x) を含んでいて、今回 f_{\theta}(x) は、\theta_0\theta_1 の2つのパラメーターを持っているとします。
これは\theta_0\theta_1の2変数を持つ2変数関数になるので、普通の微分ではなく偏微分になります。
偏微分とは、n 変数関数のある一つの変数以外の n-1 個の変数の値を固定し、残りの 1 つの変数について関数を微分することです。
mathtrain.jp

更新式を求める

更新式は下記の2つになります。
\displaystyle\ \theta_0 := \theta_0 - \eta\frac{\partial E}{\partial \theta_0}…①

\displaystyle\ \theta_1 := \theta_1 - \eta\frac{\partial E}{\partial \theta_1}…②

実際に①を偏微分してみましょう。これには合成関数の微分を使うといいです。

合成関数の微分
fg という関数があったとき、これらの合成関数 f(g(x))x微分する場合は下記式になり、これを使えば簡単になる。
\displaystyle \frac{df}{dx}=\frac{df}{dg} \cdot \frac{dg}{dx}

これを目的関数に適用します。
E(\theta) の中に  f_{\theta}(x) が出てきて、  f_{\theta}(x) の中に \theta_0 が出てきます。
それを下記のように考えてみます。

u=E( \theta_0)

v=f_{\theta}(x)

すると、こうやって段階的に微分が出来ます。
合成関数の微分
\displaystyle \frac{\partial u}{\partial \theta_0} = \frac{\partial u}{\partial v} \cdot \frac{\partial v}{\partial \theta_0}

まずは uv微分するところから計算してみます。

\displaystyle \frac{\partial u}{\partial v} =  \frac{\partial}{\partial v} \Biggl(\frac{1}{2}\sum_{i=1}^n \left(y^{(i)} - v\right)^{2} \Biggr)

=\displaystyle \frac{1}{2}\sum_{i=1}^n \Biggl(\frac{\partial}{\partial v}\left(y^{(i)} - v\right)^{2} \Biggr)

=\displaystyle \frac{1}{2}\sum_{i=1}^n \Biggl(\frac{\partial}{\partial v}\left(y^{(i)^{2}} - 2y^{(i)}v+v^{2}\right) \Biggr)

v微分するので、y^{(i)^{2}} は計算対象外なので除外します。

=\displaystyle \frac{1}{2}\sum_{i=1}^n \left(-2y^{(i)}+2v\right)

共通因数の -2 を前に出します。
=\displaystyle \frac{1}{2}\sum_{i=1}^n -2\left(y^{(i)}-v\right)

こうすると \displaystyle \frac{1}{2} と相殺されて、微分した後の式が簡単になります。
それが最初に \displaystyle \frac{1}{2} を掛けていた理由です。 =\displaystyle \sum_{i=1}^n -\left(y^{(i)}-v\right)

このままでもいいですが、マイナス符号を先頭に付けないようにもう一工夫します。
足し算を入れ替えても結果は変わらないので、 - y^{(i)}v を入れ替えます。

=\displaystyle \sum_{i=1}^n \left(v - y^{(i)}\right)

次に  v \theta_0微分します。
\theta_1 x は計算対象外なので除外します。残った \theta_0微分して 1 になります。

\displaystyle \frac{\partial v}{\partial \theta_0} = \frac{\partial}{\partial \theta_0} \left(\theta_0 + \theta_1 x\right) = 1

合成関数の微分に従って、それぞれの結果を掛けてあげれば、  \theta_0微分した結果が出る。

\displaystyle \frac{\partial u}{\partial \theta_0} = \frac{\partial u}{\partial v} \cdot \frac{\partial v}{\partial \theta_0}

=\displaystyle \sum_{i=1}^n \left(v - y^{(i)}\right)  \cdot 1

v=f_{\theta}(x)の定義を元に戻す。

=\displaystyle \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)

次は、②の  \theta_1 について微分します。

\displaystyle \frac{\partial u}{\partial \theta_1} = \frac{\partial u}{\partial v} \cdot \frac{\partial v}{\partial \theta_1}

 u v微分するところは同じ展開なので省略しても良かったのですが、あえて書いておきます。

\displaystyle \frac{\partial u}{\partial v} =  \frac{\partial}{\partial v} \Biggl(\frac{1}{2}\sum_{i=1}^n \left(y^{(i)} - v\right)^{2} \Biggr)

=\displaystyle \frac{1}{2}\sum_{i=1}^n \Biggl(\frac{\partial}{\partial v}\left(y^{(i)} - v\right)^{2} \Biggr)

=\displaystyle \frac{1}{2}\sum_{i=1}^n \Biggl(\frac{\partial}{\partial v}\left(y^{(i)^{2}} - 2y^{(i)}v+v^{2}\right) \Biggr)

v微分するので、y^{(i)^{2}} は計算対象外なので除外します。

=\displaystyle \frac{1}{2}\sum_{i=1}^n \left(-2y^{(i)}+2v\right)

共通因数の -2 を前に出します。
=\displaystyle \frac{1}{2}\sum_{i=1}^n -2\left(y^{(i)}-v\right)

こうすると \displaystyle \frac{1}{2} と相殺できます。
=\displaystyle \sum_{i=1}^n -\left(y^{(i)}-v\right)

このままでもいいですが、マイナス符号を先頭に付けないようにもう一工夫します。
足し算を入れ替えても結果は変わらないので、 - y^{(i)}v を入れ替えます。

=\displaystyle \sum_{i=1}^n \left(v - y^{(i)}\right)

次に  v \theta_1微分する部分だけを計算する。
\theta_0 は計算対象外なので除外します。残った \theta_1 x微分して x になります。

\displaystyle \frac{\partial v}{\partial \theta_1} = \frac{\partial}{\partial \theta_1}(\theta_0 + \theta_1 x) = x

合成関数の微分に従って、それぞれの結果を掛けてあげれば、  \theta_1微分した結果が出る。
\displaystyle \frac{\partial u}{\partial \theta_1} = \frac{\partial u}{\partial v} \cdot \frac{\partial v}{\partial \theta_1}

=\displaystyle \sum_{i=1}^n\left(v - y^{(i)}\right) \cdot x^{(i)}

v=f_{\theta}(x)の定義を元に戻す。

=\displaystyle \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x^{(i)}

最終的な更新式

パラメータ  \theta_0 \theta_1 の更新式は、最終的に下記のようになります。

\displaystyle \theta_0 := \theta_0 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)

\displaystyle \theta_1 := \theta_1 - \eta \sum_{i=1}^n \Biggl(f_{\theta}(x^{(i)})-y^{(i)}\Biggr)x^{(i)}

最後に

長くなったので今回はここまで、次回は多項式回帰となります。

機械学習に使われる微分の数式を理解してみる(シグモイド関数)

はじめに

機械学習関連の本や記事を見るたびに出てくる微分の数式、これを理解しないと自分は先に進めない。
しばらくはシリーズで取り組みたいと思います。

以前の記事で、シグモイド関数微分を導出してみました。再度、一から見直していきます。
yaju3d.hatenablog.jp

参考

シグモイド関数微分

前提

sigmoid(x) = \displaystyle \frac{1}{1 + e^{-x}}

結論

f(x)=sigmoid(x) とした時、
f(x)′=f(x)(1−f(x))

導出

前回の記事では、逆数の微分公式をそのまま使用しました。
\displaystyle \left(\frac {1}{f}\right)^{\prime}=\frac{−f^{\prime}}{f^{2}} です。

逆数の微分公式

まずは、 逆数の微分公式がなぜこうなるのか、どこから2乗がでてくるのかを理解していきます。

その前に分子に分数を含む式の計算を理解しておく必要があります。
manapedia.jp

分子に分数を含む式
\displaystyle \frac{\left(\frac{1}{2}\right)}{4}
これは、下記のように変更できます。
\displaystyle \frac{\left(\frac{1}{2}\right)}{4}  = \frac{1}{2}  \div 4 = \frac{1}{2}  \times \frac{1}{4} =  \frac{1}{8}

次は、微分の定義式で下記の数式になっています。
 \displaystyle\lim_{h\to 0}\dfrac{f(x+h)-f(x)}{h}=f'(x)

これを逆数にするので下記のようになります。
\displaystyle \left(\dfrac{1}{f(x)}\right)' = \displaystyle\lim_{h\to 0}\dfrac{\frac{1}{f(x+h)}-\frac{1}{f(x)}}{h}

これを展開していきます。先ずは分子の分母を通分します。
= \displaystyle\lim_{h\to 0}\dfrac{\dfrac{f(x)-f(x+h)}{f(x+h)f(x)}}{h}

分子に分数を含む式なので変形します。
= \displaystyle\lim_{h\to 0}\dfrac{f(x)-f(x+h)}{f(x+h)f(x)} \div h

= \displaystyle\lim_{h\to 0}\dfrac{f(x)-f(x+h)}{f(x+h)f(x)} \times \dfrac{1}{h}

= \displaystyle\lim_{h\to 0}\dfrac{f(x)-f(x+h)}{h(f(x+h)f(x))}

これを下記のように分解すると微分の定義式f'(x)が見えてきます。
=\displaystyle\lim_{h\to 0}-\dfrac{1}{f(x)f(x+h)}\cdot\dfrac{f(x+h)-f(x)}{h}

=\displaystyle\lim_{h\to 0}-\dfrac{1}{f(x)f(x+h)}\cdot f'(x)

 h は極限で  0 として扱うので無視します。

=\displaystyle\lim_{h\to 0}-\dfrac{1}{f(x)f(x+0)}\cdot f'(x)

=-\dfrac{f'(x)}{f(x)^{2}}

これで逆数の微分公式が求まりました。

e の微分公式

公式 (e^{x})^\prime = e^{x}

符号違いのもう一つ公式を求めます。
公式 (e^{-x})^\prime = -e^{-x}

導出するにはチェーンルール(合成関数の微分公式)を用いて求めます。
y=e^{u}u=-x とおいて、\displaystyle  y\prime=\frac{dy}{du}\frac{du}{dx}=e^{u}\cdot(-1)=-e^{-x}

シグモイド関数微分

ここからシグモイド関数を逆数の微分公式を使用して微分します。

シグモイド関数1+exp(−x) の逆数なので
f^{\prime}(x)=\left(\displaystyle \frac {1}{1+exp(−x)}\right)^{\prime}

逆数の微分公式 -\dfrac{f'(x)}{f(x)^{2}} を当てはめます。

=\displaystyle \frac{-(1+exp(-x))^{\prime}}{(1+exp(-x))^{2}}

分子は微分するので1は消えます。
=\displaystyle \frac {-(-exp(−x))}{\left(1+exp(−x)\right)^{2}}
公式 (e^{-x})^\prime = -e^{-x} を当てはめると分子の符号がプラスになります。
=\displaystyle \frac {exp(−x)}{\left(1+exp(−x)\right)^{2}}

式を分解して分けます。分ける理由は、定義の式f(x)が出てくるようにするためです。
=\displaystyle \frac {1}{1+exp(−x)} \frac {exp(−x)}{1+exp(−x)}

=\displaystyle \frac {1}{1+exp(−x)} \left(\frac {1+exp(−x)}{1+exp(−x)}−\frac {1}{1+exp(−x)}\right)

=\displaystyle \frac {1}{1+exp(−x)} \left(1−\frac {1}{1+exp(−x)}\right)

ここで、
f(x)=\displaystyle \left(\frac {1}{1+exp(-x)}\right)
であるから、式を当てはめると

=f(x)\left(1−f(x)\right)

最後に

定義の式が出てくるように式を変形するという部分は難しいですね。
今回は、偏微分や合成関数などの出てきてません。まーやり方はいろいろあるので次回は使っていきます。

2019年こそ英語を継続して勉強する

はじめに

今年になってサブタイトルにこっそり「英語」を追記しました。
毎年新年を迎えると今年こそ英語をと誓うものの、数ヶ月もすれば何もしないで終わってそのまま1年経ってしまう。
こんなことを25年ぐらいやっているわけで、溜まるのは本や教材ばかりです。
20年前のドリッピーもあるし、釈由美子さんやっていたNHK英語でしゃべらナイト」の本は全部揃ってます。

ネットで紹介されてた本も買うものの、買うだけで満足してしまったり、読み終えるだけで終わるって状態です。

習慣化

昨年、Twitterのツイートでコワーキングをしている「エニシア静岡」ってところを知りました。勉強会の会場とかになってたんですね。
www.enicia.net

静岡街中の丸井の最上階にあるんですが、今いる会社から近いので今年からAfter Time会員になって仕事帰りに静岡駅に行く前に寄るようにしています。
ここで今は平日は1時間勉強しています。慣れてくれば時間を徐々に増やして2時間ぐらいまでしていきたいところですが、家もそもそも遠いので限界があります。今なら観たいドラマもTverで時間ずらして見れますしね。

英語力

中学1年生レベルからはじめました。
本を購入したんですが、結局iPhoneアプリ版を使っています。

これと英語組み立てTOWNをやっています。自分は昔に購入したので有料版を使っていますが、今は広告有りの無料版が出ているようです。
これは英文法の整序問題で正しい順序にして英文法を作成するのですが、結構楽しいです。

最後に

TOEICを受けたことがないですが、現在のレベルからしたら300点以下だと思います。これをTOEIC600点以上にはしていきたいです。