「ラビット・チャレンジ」深層学習day3day4まとめ

<全体の考察等>

 再帰ニューラルネットワークのロジックを一つずつ学び、アルゴリズムの進化を追うことで特徴を理解できた。また、強化学習で有名なAlpha go等の動きを学ぶことで、その違いを理解。改めてニューラルネットワークの全体像が把握できてきたと感じている

 

<修了課題(E資格受験認定テスト)の感想>

 プログラミング経験の薄さから、コードの問題にはかなり苦労をしたが、おかげで、勘所が少しわかってきたように感じる。ボリュームも多く、非常に苦労したが、全体を網羅的に出題していただいたことで総復習にもつながったと感じている

 

 深層学習Day3

◆Section1:再帰ニューラルネットワークの概念

●RNN全体像

RNNとは時系列データに対応可能なニューラルネットワーク

・時系列データとは

時間的順序を追って、一定間隔ごとに観察され、しかも相互に統計的依存関係が認められるようなデータの系列

具体例:音声データ、テキストデータ

・3つの重み

 入力から現在の中間層を定義する際にかけられる重み

 中間層から出力を定義する際にかけられる重み

 中間増から中間層への出力を定義する際にかけられる重み

・特徴

 時系列モデルを扱うには、初期の状態と過去の時間t-1の状態を保持し、そこから次の時間でのtを再帰的に求める再帰構造が必要になる

・コード

 

f:id:patapata007:20210710073409p:plain

バイナリ加算

・BPTT

RNNにおいてのパラメータ調整方法の一種

誤差逆伝播の一種)

 

●確認テストの考察

 RNNの図を数式で表す問題で、具体的な動きと数式のイメージを一致させることができた

 

◆Section2:LSTM

●RNNの課題

 時系列を遡れば遡るほど、勾配が消失されていく

 →長い時系列の学習が困難

 →解決策

 前回の授業で触れた勾配消失の解決方法とは別で構造自体を変えて解決したものが●LSTM
CEC

 勾配消失及び勾配爆発の解決方法として、勾配が、1であれば解決できる

CECの課題

 入力データについて、時間依存度に関係なく重みが一律である

 →ニューラルネットワークの学習特性がないということ

・入力出力ゲートの役割

 入力・出力ゲートを追加することで、それぞれのゲートへの入力値の重みを、重み行列W,Uで可変可能とする→CECの課題を解決

・LSTMブロックの課題

 過去の情報がいらなくなった場合、削除することはできず、保管され続ける

・忘却ゲート

 過去の情報がいらなくなった場合、そのタイミングで情報ぼ忘却する

 

 

●確認テストの考察

 問題を通じて具体的な日本語の中での忘却ゲートの動きを理解でき

 

◆Section3:GRU

●LSTMの課題

 LSTMではパラメータ数が多く、計算負荷が高くなる問題があった

●GRUとは

 従来のLSTMでは、パラメータが多数存在していたため、計算負荷が大きかった。しかし、GRUでは、そのパラメータを大幅に削減し、精度は同等またはそれ以上が望めるようになった構造

メリットは計算負荷が低いこと

●確認テスト等の考察

 問題を通じてLSTMとCECの課題について改めて理解することができた

 

◆Section4:双方向RNN

●双方向RNNとは

 過去の情報だけでなく未来の情報を加味することで、精度を向上させるためのモデル

 実用例:文章の推敲や機械翻訳

●確認テスト等の考察

 演習チャレンジでは、双方向RNNでは順方向と逆方向に伝播したときの中間層表現をあわせたものが特徴量となることが数式と併せてよく理解できt

 

◆Section5:Seq2seq

●Seq2seqとは

 Encoder-Decorderモデルの一種をさす

 実用例:機械対話や機械翻訳

●Encorder RNN

ユーザーがインプットしたテキストデータを、単語等のトークンに区切って渡す構造

●Decorder RNN

システムがアウトプットデータを単語等のトークンごとに生成する構造

●HRED

・Seq2seqの課題は一問一答しかできないこと

 問に対して文脈も何もなく、ただ応答が行われ続ける

・HREDとは

 過去nー1の発話から次の発話を生成する。

 Seq2seqでは、会話の文脈無視で、応答がなされたが、HRED

では、前の単語の流れに即して応答されるため、より人間らしい文章が生成される。

・HREDの構造

 Seq2seq+Context RNN

Context RNN:Encoderのまとめた各文章の系列をまとめて、これまでの会話コンテキスト全体を表すベクトルに変換する構造

→過去の発話の履歴を加味した返答が可能

・HREDの課題

HREDは確率的な多義性が字面にしかなく、会話の流れのような多様性がない。

 

●VHRED
HREDにVAEの潜在変数の概念を追加したもの 

 

●オートエンコーダ

教師なし学習の一つ。

そのための学習時の入力データは訓練データのみで教師データは利用しない

 

●VAE

データを潜在変数zに確率分布z~N(0,1)を仮定したもの

●コード

f:id:patapata007:20210710074453p:plain

seq2seqコード


 

 

●確認テスト等の考察

テストを通じてSeq2seqがRNNを用いたEncorder ーDecorderモデルであることを改めて認識。HRED、VHRED、VAEとの違いも明確に理解できた。

 

◆Section6:Word2vec

 学習データからボキャブラリを作成

本来は辞書の単語数だけでできあがる

・メリット

大規模データの分散表現の学習が、現実的な計算速度とメモリ量で実現可能にした

×:ボキャブラリ×ボキャブラリだけの重み行列が誕生

〇:ボキャブラリ×任意の単語ベクトル次元で重み行列が発生

 

◆Section7:Attenntion Mechanism

●Attenntion Mechanismとは

入力と出力の度の単語が関連しているのかの関連度を学習する仕組み

・課題

Seq2seqの問題は長い文章への対応が難しい

Seq2seqでは、2単語でも100単語でも固定次元ベクトルの中に入力しなければならない。

・解決策(Attenntion Mechanism)

文章が長くなるほどそのシーケンスの内部表現の次元も大きくなっていく仕組みが必要

 

 

●確認テスト等の考察

RNN、word2vec、Attenntionの違いを簡潔に述べる問題をとおし、それぞれ特徴を明確にすることができた

 

 

 深層学習Day4

◆Section1:強化学習

強化学習とは

長期的に報酬を最大化できるように環境の中で行動を選択できるエージェントを作ることを目標とする機械学習の一分野

●応用例

 環境:会社の販売促進部

 エージェント:プロフィールと購入履歴に基づいて、キャンペーンメールを追うる顧客を決めるソフトウェアである

 行動:顧客ごとに送信、非送信のふたつの行動を選ぶことになる

 報酬:キャンペーンのこすとという負の報酬とキャンペーンで生み出されると推測される売上という正の報酬を受ける

●価値関数

 価値を表す関数としては状態価値関数と行動価値関数の2種類

ある状態の価値に注目する場合は状態価値観す

状態と価値を組み合わせた価値に注目する場合は、行動価値観す

●方策関数

 方策ベースの強化学習手法において、ある状態でどのような行動を採るのかの確率を与える巻子

●方策勾配法

強化学習は価値関数と方策関数の2つが優秀ならうまくいく

→将来のことを考えながら今の行動を選べる人

・方策反復法

方策をモデル化して最適化する手法

 

◆Section2:Alpha Go

●Policy Net、Value Netの入力

●Roll Out Policy

 NNではなく線形の方策関数

探索中に高速に着手確率を出すために使用される

●Alpha Goの学習

 ・教師あり学習によるRollOutPolicyとPolicynetの学習

 ・強化学習によるPolicynetの学習 

 ・強化学習によるValueNetの学習

●Alpha GoとAlpha Go Zeroの違い

 ・教師あり学習を一切行わず、強化学習のみで作成

 ・特徴入力からヒューリスティックな要素を排除し、石の配置にのみにした

 ・Policy Net ValueNetを1つのネットワークに統合

 ・Residual Netを導入

 ・モンテカルロ木探索からRollOutシミュレーションをなくした

 

◆Section3:軽量化・高速化技術

●分散深層学習とは

 ・深層学習は多くのデータを使用したr、パラメータ調整のために多くの時間を使用したりするため、高速な計算が求められる

・複数の計算資源を使用し、並列滝にニューラルネットを構成することで効率の良い学習を行いたい

・データ並列化、モデル並列化、GPUによる高速技術は不可欠である

 

●データ並列化

 ・親モデルを各ワーカーに子も出るとしてコピー

 ・データを分割し、各ワーカーごとに計算させる

 ・各モデルのパラメータの合わせ方で同期型か非同期型か決まる

 ・非同期型のほうが早いか不安定なため、同期型が主流

 

●モデル並列化

・親モデルを書くワーカーに分割し、それぞれのモデルを学習させる。すべてのデータで学習が終わった後で、一つのモデルに復元

・モデルがを大きいときはモデル並列化を、データが大きいときはデータ並列化をするとよい

<参考図書等>

Large Scale Distributed Deep Networks

 Googleが2016年に出した論文

Tensorflowの前身

 

GPUによる高速化

GPGPU

CPU

GPU

 

GPGPU開発環境

CUDA

OpenCL

 

●モデルの軽量化

モデルの精度を維持しつつ、パラメータや演算回数を低減する手法の総称

<参考図書等>

ディープラーニングのモデル軽量化

山本康平、橘素子 前野蔵人

→様々な手法の中で「枝刈り」がバランスがよい

●軽量化の手法

量子化

重みの精度を下げることにより計算の高速化と省メモリ化を行う

・蒸留

複雑で精度の良い教師モデルから軽量な生徒も出るを効率よく学習を行う技術

・プルーニング

寄与の少ないニューロンをモデルから削減し高速化と省メモリ化を行う技術

 

◆Section4:応用モデル

●MobileNet

<参考図書等>

MobileNet:Efficient Convolutional Neural Networks for Mobile Vision Applications

 →ディープラーニングモデルの軽量化、高速化、高精度化を実現

・一般的な畳み込みレイヤーは計算量が多い

・MobileNetはDepthwise ConvolutionとPointwise Convolutionの組み合わせで軽量化を実現

●DenseNet

層が深くなるにつれて、学習が難しくなるという課題を前方の層から後方の層へアイデンティティ接続を介してパスを作ることで対処

Dense Blockと呼ばれるもモジュールを用いた

<参考図書等>

Densely Connected Convolutional Networks.G.Huang et.al.2016

●Wavenet

・時系列データに対して畳み込み(Dilated convolution)を適用

・深層学習を用いて統合確率を学習する際に、効率的に学習が行えるアーキテクチャを提案したことがWavenetの大きな貢献の一つである。提案された新しいConcolution型アーキテクチャーはDilated casual convolution と呼ばれ、結合確率を効率的に学習できるようになっている

 

◆Section5:Transformer

●ニューラル機械翻訳の問題点

 翻訳元の分の内容を一つのベクトルで表現

→文章が長くなると表現力が足りなくなる

●Attention

翻訳先の各単語を選択する際に、翻訳元の文中の各単語の隠れ状態を利用

●Transformer

Attention is all you need

RNNを使わない

必要なのはAttenntionだけ

RNNを使っていないので位置情報は保存できないので、最初に位置情報を追加

自分の入力だけで学習的に重みづけを決める

イメージはCNNが近い

●Positon-Wise Feed-Forward Networks

位置情報を保持したまま順伝搬させる

●Scaled dot product attention

全単語に関するAttentionをまとめて計算する

●Multi-Head attention

重みパラメタの異なる8個のヘッドを使用j

●コード

f:id:patapata007:20210710074654p:plain

Transformerコード

◆Section6:物体検知・セグメンテーション

●鳥瞰図 広義の物体認識タスク

分類

物体検知

意味領域分割

大老域分割

●代表的データセット

VOC12

ILSVRC17

MS COCO18

OICOD18

・ポジショニング

クラス数とBOX/画像の大きさのマッピング

●評価指標

・Confusion Matrix

Precision

Recall

●IoU

Intersection over Union

物体検出においてはクラスレベルだけでなく、物体位置の予測精度も評価したい

●深層学習以降のぶって意見値

2段階検出器

1段階検出器

SSD

ベースはVDD16

●Semantic Segmentation

正しく認識するためには受容野にある程度の大きさが必要

・FCNの基本アイディア

・Deconvolution/Transposed convolution

通常のConv.層と同様、kernel size padding strideを指定

逆畳み込みと呼ばれることも多いが畳み込みの逆演算ではない

当然poolingで失われた情報が復元されるわけではない

●実装演習サマリーと考察

 コードによる実装演習はなかったが、講師が分類問題における閾値変化に対するふるまい等を事例にのっとって丁寧に解説してくれ、IoUの解釈等、非常にイメージがわき、理解することができた

 

 

 

 

 

 

「ラビット・チャレンジ」深層学習day1day2まとめ

<全体の考察等>

 深層学習のロジックを一つずつ学ぶことで逆にようやく全体像が理解できてきた気がしている。CNNまで学んだうえで、改めてニューラルネットワークの全体像や活性化関数の意味を振り返ることで、結局、主要な考え方を組み合わせて新たなロジックが産まれてきていることが理解できた。

 

<修了課題(ステージテスト3)の感想>

 最尤推定、主成分分析、サポートベクターマシンなどの機械学習関連の出題が多く、一つ一つの細かい特徴等は理解できてなかったことがテストを通じて改めて認識することができた。ケアレスミス等も含め、E資格取得に向け、まだまだ課題が多いことがわかった。

 

 深層学習Day1

◆Section1:入力層~中間層

ニューラルネットワークの全体像

・明示的なプログラムの代わりに多数の中間層を持つニューラルネットワークを用いて、入力値から目的とする出力値に変換する数学モデルを構築すること

・重みとバイアスの最適化が最終目的

ニューラルネットワークでできること

・回帰

連続する実数値をとる関数の近似

・分類

性別や動物の種類など離散的な結果を予想するための分析

●数式とコード

f:id:patapata007:20210704055025p:plain

順伝搬(単層・単ユニット)のコード

f:id:patapata007:20210704055334p:plain

順伝搬(3層・複数ユニット)のコード

●確認テストの考察
端的に何をやろうとしているかという問いかけは最初に頭を整理するうえで非常によかった。また、動物分類の実例等もイメージが沸いた。数式とコードを確認することで、実際に構築していける実感がでてきたように思う。

 

●参考図書

『やさしく学ぶ ディープラーニングがわかる数学のきほん』 マイナビ

深層学習を学びながら、以前、さらっと読んだ、本書も再確認。基本を改めて確認することで理解が深まった。

 

◆Section2:活性化関数

●活性化関数とは

ニューラルネットワークにおいて、次の層への出力の大きさを決める非線形の関数

入力値の値によって、次の層への信号のON/OFFや強弱を定める働きをもつ

●中間層用の活性化関数

・ステップ関数

線形分離可能なものしか学習できない

シグモイド関数

大きな値では出力の変化が微小で勾配消失問題を引き起こす

・RELU関数

勾配消失問題の回避とスパース化に貢献

●全結合NN 単層・複数ノードの数式

f:id:patapata007:20210704060450p:plain

全結合NN 単層・複数ノードの数式

 

●確認テストの考察

 線形と非線形の違いは、非線形をどう書くか一瞬迷う。

数式はRELUの定義まで部分まで丁寧に解説していただき、構造が理解できた

 

◆Section3:出力層

●出力層の役割

最後に数値化

●誤差関数

二乗和誤差、残差平方和

・二乗する理由

引き算を行うだけでは、各ラベルでの誤差で正負両方の値が発生し、全体の誤差を正しくあらわすのに都合が悪い。二乗してそれぞれのラベルでの誤差を制の値になるようにする

・1/2にする理由

実際にネットワークを学習するときに行う誤差逆伝搬の計算で、誤差関数の微分を用いるが、その際の計算式を簡単にするため。本質的な意味はない。

●出力層の活性化関数

・ソフトマックス関数

多クラス分類

交差エントロピー

・恒等写像

回帰

二乗誤差

シグモイド関数

二値分類

交差エントロピー

 

●交差エントロピーソースコード(確認テスト)

f:id:patapata007:20210704062034p:plain

交差エントロピーソースコード

●確認テストの考察

 ソースコードの確認と一行ずつ処理を解説していただいたのは非常にありがたく、理解が進んだ

 

◆Section4:勾配降下法

●勾配降下法

・勾配降下法を利用してパラメータを最適化

誤差E(w)を最小化するパラメータwを発見する

全サンプルの平均誤差

学習率の値によって学習の効率が大きく異なる

・該当するソースコード

f:id:patapata007:20210704063820p:plain

勾配降下法のソースコード

・勾配降下法のアルゴリズム

Momentum

Adagrad

Adadelta

Adam

 

確率的勾配降下法

・ランダムに抽出したサンプルの誤差

・メリット

データが冗長な場合の計算コストの軽減

望まない局所極小解に収束するリスクの軽減

オンライン学習ができる

・オンライン学習とは 

学習データが入ってくるたびに都度パラメータを更新し、学習を進めていく方法。一方バッチ学習では一度にすべての学習データを使ってパラメータ更新を行う。

 

●ミニバッチ勾配降下法

・ランダムに分割したデータの集合Dtに属するサンプルの平均誤差

確率的勾配降下法のメリットを損なわず、計算機の計算資源を有効活用できる

 

 

●確認テストの考察

 数式の意味を図に書いて説明するという問題は戸惑ったが、印象深く、記憶に残った

 

 

◆Section5:誤差逆伝播

●誤差逆伝搬法とは

算出された誤差を出力層側から順に微分し、前の層前の層へと伝播

最小限の計算で各パラメータでの微分値を解析的に計算する手法

 

f:id:patapata007:20210704064259p:plain

既に行った計算結果を保持しているソースコード

 

●確認テストの考察

ソースコードの確認を逆伝播の動作と共に追っていただいたは非常にわかりやすい。微分の連鎖率が数式で再現されていることを確認でき、理解が深まった

 

 

 

 深層学習Day2

◆Section1:勾配消失問題

●勾配消失の解決法

・活性化関数の選択

・重みの初期値設定

・バッチ正規化

●活性化関数

RELU関数

微分結果が1か0で必要な重みだけが残る

→効果的な動きを見つけてくれスパース化につながる

●重みの初期値設定

・Xavier

 RELU関数、シグモイド関数、双曲線正接関数 に設定

 重みの要素を前の層のノード数の平方根で除算した値

・He

 RELU関数に設定

 重みの要素を前の層のノード数の平方根で除算した値に対し√2をかけあわせた値

・確認テスト

 重みの初期値に0を設定するとどのような問題が発生するか

 正しい学習を行えない

 全ての重みの値が均一に更新されるため多数の重みを持つ意味がなくなる

●バッチ正規化

 ミニバッチ単位で入力値のデータの偏りを抑制する手法

 活性化関数に値を渡す前後にバッチ正規化の処理をはらんだ層を加える

f:id:patapata007:20210704071852p:plain

バッチ正規化のコード

●確認テストの考察

重みの初期値を0にすることの問題を考えることで初期値設定の重要性が理解できた。

 

◆Section2:学習率最適化手法

●学習率の決め方

学習率最適化手法を利用して学習率を最適化

●モメンタム

誤差をパラメータで微分したものと学習率の積を減算した後、現在の重みに前回の重みを減算した値と慣性の積を加算する

●Adagrad

誤差をパラメータで微分したものと再定義した学習率の積を減算する

●RMSProp

誤差をパラメータで微分したものと再定義した学習率の積を減算する

●Adam

モメンタム及びRMSPropのメリットをはらんだアルゴリズム

f:id:patapata007:20210704074638p:plain

Adamの学習結果

●確認テストの考察

それぞれの学習率最適化手法の特徴と課題がよく理解できた。

欠点を改良しながら徐々にアルゴリズムの最適化が進んでいく過程を実感した。

 

◆Section3:過学習

正則化

誤差に対して、正則化項を加算することで重みを抑制する

L1正則化 Lasso推定量 スパース推定

L2正則化 Ridge推定量 縮小推定

ドロップアウト

 ランダムにノードを削除して学習させること

 データ量を変化させずに異なるモデルを学習させていると解釈できる

f:id:patapata007:20210704075555p:plain

ドロップアウト学習結果

●確認テストの考察

L1正則化を表すグラフを実際に見ながらその意味を確認することで正則化の理解を深めることができた。L1正則化は一つの重みに対して0のポイントを探し出してくれるのが特徴であることを理解。

 

◆Section4:畳み込みニューラルネットワークの概念

●全体像

 LeNetの構造図

 1024個のインプットから10個へ

●畳み込み層

画像の場合、縦、横、チャンネルの3次元のデータをそのまま学習し、次に伝えることができる

3次元の空間情報も学習できるような層が畳み込み層である

フィルターとバイアス

●パディング

フィルターを通すと画像が小さくなるため、1番近い数字で埋めることができる

ストライド

フィルタをストライド数にもとづいて動かす

●チャンネル

フィルターをとおしてもチャンネル数は減らない

●全結合層のデメリット

画像の場合、縦、横、チャンネルの3次元データだが、1次元のデータとして処理される

RGBの各チャンネル間の関連性が学習に反映されない

●畳み込み層の実装

f:id:patapata007:20210704080555p:plain

畳み込み層のソースコード

●プーリング層

対称領域のMax値または、平均値を取得

f:id:patapata007:20210704081022p:plain

プーリング層のソースコード

●確認テストの考察

 サイズ6×6の入力画像の確認テストにより、畳込みの動作を理解することがで、その後、ソースコードを確認することで、CNNの実装について理解できた

 

◆Section5:最新のCNN

●AlexNet

過学習を防ぐ施策としてサイズ4096の全結合層の出力にドロップアウトを使用している

224×224の画像を11×11のフィルタに

→55×55の画像

→27×27の画像

→13×13の画像

→全結合層へ

 

●参考図書

『ゼロから作るDeep Learning』オライリー・ジャパン

改めて、深層学習について学んだところで、以前途中で挫折していた

この有名な参考図書を確認

以前はとっつきにくいと感じたが、講座と補完して理解を深めるには非常に良いと感じた

 

 

 

「ラビット・チャレンジ」機械学習まとめ

<全体の考察等>

 ディープラーニングを学ぶにも機械学習アルゴリズムの考え方がベースとなっていることがよくわかった。GoogleAIブログの講師からの紹介により、何がなんでもディープラーニングではなく、状況に応じて機械学習含めてどのアルゴリズムを適用するか判断していくことが必要と感じた。

 

<修了課題(ステージテスト2)の感想>

 線形回帰でモデルの表現力を下げるということがしっくりこなかったが、説明変数を減らしたり正則化ということもあるということで理解した。

訓練データが多いと過学習が起きやすいというのは実際の予測していく上で適正なデータ量というのを判断していく必要があるということだし、予測したい内容に応じて、適切なデータやアルゴリズムを最初によく検討することが非常に重要だと感じた。

 

◆線形回帰モデル

 <参考図書等>

『イラストで学ぶ機械学習』 杉山先生

数学を学ぶには非常に参考になる良書

 

●線型とは

ざっくりいうと比例のこと

Y=Ax+B(2次元)からはじまり

n次元空間における超平面の方程式もある

●回帰問題

 ある入力から出力を予測する問題

 直線で予測→線形回帰

 曲線で予測→非線形回帰

●線型回帰モデル

 回帰問題を解くための機械学習モデルの一つ

 教師あり学習

 入力とm次元のパラメータの線形結合を出力するモデル

●モデル数式

 説明変数が1次元の場合

 説明変数が多次元の場合

●データの分割とモデルの汎化性能測定

 学習用データと検証用データに分割

●線型回帰モデルのパラメータは最小二乗法で推定

●ハンズオン

住宅価格予測。データに偏りがある時にはデータをもう少し表示して中身を確認することが重要。

f:id:patapata007:20210703092115p:plain

単回帰モデルでの予測

 

非線形回帰モデル

●複雑な非線形構造を内在する事象に対して、非線形回帰モデリングを実施

●基底展開法

単回帰のxの代わりにφ(x)を用いる

多項式関数

ガウス型関数

・スプライン関数/Bスプライン関数

基底展開法も線形回帰と同じ仕組みで推定可能

●未学習と過学習

 未学習 学習データに対して、十分小さな誤差が得られない

 過学習 小さな誤差は得られたけどテスト集合誤差との差が大きい

 →対策 不要な基底関数を削除、正則化

正則化

 L2ノルム→RIdge推定量

 L1ノルム→Lasso推定量

●汎化性能

 学習に使用した入力だけでなくこれまで見たことのない新たな入力に対する予測性能

・ホールドアウト法

・クロスバリデーション

 

f:id:patapata007:20210703093534p:plain

重回帰モデルでの予測

 

◆ロジスティック回帰

<参考図書等>

Using ML to Predict Parking Difficulty

[Google AI Blog :2017 Feb]

識別的アプローチ

生成的アプローチ

●分類問題

ある入力からクラスに分類する問題

●ロジスティック線形回帰モデル

分類問題を解くための教師あり機械学習モデル

シグモイド関数

 出力は必ず0~1

 パラメータが変わるとシグモイド関数の形が変わる

 シグモイド関数微分シグモイド関数自身で表現可能

最尤推定

 尤度関数を最大とするパラメータを探索

●勾配降下法

反復学習によりパラメータを逐次的に更新するアプローチの一つ

確率的勾配降下法

データを一つずつランダムに選んでパラメータを更新

 効率よく最適な解を探索可能

●混同行列

 RecallとPrecision

●ハンズオン

チケット価格から生死を予測

f:id:patapata007:20210703095621p:plain

ロジスティック回帰モデルによる予測

 

◆主成分分析

●多変量データの持つ構造をより少数個の指標に圧縮

係数ベクトルが変われば線形変換後の値が変化

●制約付き最適化問題の解き方

 ラグランジュ関数を最大にする係数ベクトルを探索

 ラグランジュ関数を微分して最適化を求める

 元のデータの分散共分散行列の固有値固有ベクトルが制約付き最適化問題の解となる

●ハンズオン

乳がん検査データを利用しロジスティック回帰モデルを作成

主成分を利用し二次元空間に次元圧縮

f:id:patapata007:20210703100812p:plain

主成分分析予測結果

 

アルゴリズム

 ●k近傍法(kNN)

 分類問題のための機械学習手法

 最近傍のデータをK個取ってきて、それらがもっとも多く所属するクラスに識別

 kを変化すると結果も変わる

 kを大きくすると決定境界は滑らかになる

 ●k-means

    教師なし学習

    クラスタリング手法

    与えられたデータをK個のクラスタに分類する

  ・アルゴリズム

   ①各クラスタ中心の初期値を設定する

   ②各データ点に対して、各クラスタ中心との距離を計算し、最も距離が近いクラスタを割り当てる

   ③各クラスタの平均ベクトルを計算する

   ④収束するまで②③の処理を繰り返す

 ●ハンズオン

 

f:id:patapata007:20210703102545p:plain

k近傍法による予測

f:id:patapata007:20210703102735p:plain

k-meansによる予測結果

 

◆サポータベクターマシン

 ●サポートベクターマシンとは

 ・2クラス分類のための機械学習手法

 ・線形モデルの正負で2値分類

 ・線形判別関数と最も近いデータ点との距離をマージンという

 ・マージンが最大となる線形判別関数を求める

 ●ラグランジュの未定乗数法

 ・制約付き最適化問題を解くための手法

 ・KKT条件

  制約付き最適化問題において最適解を満たす条件

 ・双対問題 

  ラグランジュ関数からW,bを削除

 ●サポートベクター

 ・分離超平面を構成する学習データは、サポートベクターだけで残りのデータは不要

 ●ソフトマージンSVM

 ・サンプルを線形分離できないとき誤差を許容し、誤差に対してペナルティを与える

 ・パラメータCの大小で決定境界が変化

 ●非線形分離

 ・特徴空間に写像し、その空間で線形に分離

 ・カーネルトリック

 ●ハンズオン

f:id:patapata007:20210703105436p:plain

サポートベクターマシンによる予測結果

 

「ラビット・チャレンジ」応用数学まとめ

第1章:線形代数

<考察、感想等>

 行列が機械学習の計算のベースとなることはここまでの導入学習で、痛感している。機械学習においても、如何に膨大な計算量を減らす工夫が必要かということが大切であり、そのために非常に重要な部分

 

スカラーとベクトルの違い

 スカラーは普通の数、ベクトルは大きさと向きをもつ

●行列

スカラーを表にしたもの

・ベクトルを並べたもの

・行列の積

 行×列で新たな行列の成分を求める

行基本変形で逆行列を求めることができる

行列式

 平行四辺形の面積が逆行列の有無を判別する。この面積を行列式と呼ぶ

固有値固有ベクトル固有値分解

正方形の行輝を3つの行列の積に変換することを固有値分解という。

 この変換によって行列の累乗の計算が容易になる等の利点がある

[参考図書]

機械学習のエッセンス SBクリエイティブ 加藤公一

 線形代数のポイントについては、非常にわかりやすく、例題の解説も詳しい

 理解を深めるために使用しました。

 

第2章 確率・統計

<考察、感想等>

 ベイズ則等あらためて学習し、普段の業務の中でも活かせる考え方であると感じた。

機械学習のアウトプットを考えるうえでも非常に重要な部分

●条件付き確率

・頻度確率とベイズ確率

・条件付き確率

 ある事象X=xが与えられた下で、Y=yとなる確率

・独立な事象の同時確率

 お互いの発生には因果関係のない事象X=xと事象Y=yが同時に発生する確率

ベイズ

 飴玉をもらう確率と飴玉をもらうと笑顔になる確率→笑顔な子供が飴玉をもらっている確率

●確率変数と確率分布

・確率変数

 事象と結びつけられた数値

・確率分布

 事象の発生する確率の分布

・期待値

 その分布における確率変数の平均の値ORありえそうな値

・分散

 データの散らばり具体

・共分散

 2つのデータ系列の傾向の違い

●様々な確率分布

・ベルヌーイ分布

・マルチヌーイ分布

・二項分布

ガウス分布

 

第3章 情報理論

<考察、感想等>

 エントロピーの感が方自体、初めて学習。生活の中で、自然に考えていることではあるが、改めて整理することで様々な応用が利くと感じた。分析結果の重みづけの上で非常に重要な考え方であると理解

機械学習のアウトプットを考えるうえでも非常に重要な部分

●自己情報量、シャノンエントロピー

シャノンエントロピーは事故情報量の期待値

●カルバック・ライブラーダイバージェンス

・同じ事象、確率変数における異なる確率分布P,Qの違いを表す

・交差エントロピー

KLダイバージェンスの一部分を取り出したもの

 

 

 

 

 

 JDLA Deep Learning for GENERAL 2021#1 に合格したので、

この勢いにのって、E資格も目指していきたいと思う。

 

仕事でゼネラリストとしてはAIに関わっているとはいえ、

プログラミング未経験の自分がどこまでやれるかはわからないが、

自身でも構築できるようになりたいという以前からの思いを実現するために

頑張ってみることにする。

 

合格者向けのクーポンをご案内いただいこともあり、

Study-AI株式会社(Study-AI運営事務局)の

E資格2021#2(2021年8月)向け
JDLA認定プログラム「ラビット・チャレンジ」

https://ai999.careers/rabbit/

にチャレンジすることにした。

月3,000円(税別)で学習できるありがたいコース。

※初期費用は、定価20,000円(税別)

 

 8月のE資格受験に向け、

まずは

【今お申込みで無料】という

超AI入門講座(定価5万円)
・AIを学ぶための本格Python講座
・AIを学ぶための本格数学講座

 で徹底的に基礎固めを試みつつ、本講座にもトライしていく。

とにかく、必死で頑張ってみよう。