多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターンがある やや複雑な分類パターンが4ユニットにすることで出てきたもの。
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
MATLAB,Python,Scilab,Julia比較 その33【行列演算⑯】
Scilabで基本的な行列演算実施。 基本的にはMATLABと同一。 ただし、要素終端がendではなく「$」である点に注意が必要。
MATLAB,Python,Scilab,Julia比較 その32【行列演算⑮】
Python(Numpy)での基本的な行列演算を確認。 内積は「@」 「*」だとアダマール積になるので注意 それ以外にも0オリジンだったり、終端指定が-1だったりとクセが違う。 右除算もできるように見せかけて、実は逆行列とのアダマール積なので目的としたものとは異なる。
MATLAB,Python,Scilab,Julia比較 その31【行列演算⑭】
具体的に各ツール、各言語での行列演算についての話に突入。 四則演算に加えて、アダマール積、べき乗、転置、反転。 まずは手馴れたMATLABから。
内積はベクトル表記と成分表記の公式がある。 成分表記の内積は余弦定理から求められる。 行列は方程式の係数部をまとめたもの。 行列演算は入力ベクトル、変換行列、出力ベクトルが基本形。 入力、出力をnセットに拡張すると列ベクトルがnセット分の列が増えの行列になる。
MATLAB,Python,Scilab,Julia比較 その30【行列演算⑬】
前回の行列演算の式を再掲。 前回は入力、出力の列ベクトルを2セットだったが、これをnセットにするとどうなるか。 入力、出力が2x2行列からnx2行列へ。 これの利点は入力から出力の変換が一括で表現できること。 これを知ってるだけでコミュニケーションスキルが上がる?
MATLAB,Python,Scilab,Julia比較 その29【行列演算⑫】
連立方程式を行列演算にしたものを再掲。 上記の構成は[出力ベクトル]=[変換行列][入力ベクトル]となる。 これの入力、出力を列ベクトル2セットにすると2x2の行列になる。 すべて2x2行列になるが、数式上の位置によって、入力、変換、出力と意味が異なる。 このルールをすっ飛ばしてる行列嫌いになるかも?
MATLAB,Python,Scilab,Julia比較 その28【行列演算⑪】
二元一次方程式を書き出す。 上記をベクトルの内積で表現し直す。 さらに上記を行列で表現し直す。 まずはこれが最もシンプルな行列の性質を示している。
MATLAB,Python,Scilab,Julia比較 その27【行列演算⑩】
ベクトル内積の公式を再掲。 ベクトルの内積で方程式を表現できる。 n次方程式、多変数方程式でも考え方は一緒。
MATLAB,Python,Scilab,Julia比較 その26【行列演算⑨】
バックナンバーはこちら。はじめに前回は、余弦定理の証明。任意の三角形を2つの直角三角形にすることで各辺を三角関数して表現可能。これに加えて、三角比の基本公式を加えると、余弦定理が求まる。今回は、この余弦定理を使って、内積をベクトル成分に用い
MATLAB,Python,Scilab,Julia比較 その25【行列演算⑧】
余弦定理を何とか証明。 垂直線を使って2つの直角三角形を作ることで各辺を三角関数を使用した表現が可能。 三角比の基本公式を加えると、余弦定理が求まる。 基本公式は三平方の定理と半径1の円起動の点と原点をを元に作った直角三角形から求まる。
MATLAB,Python,Scilab,Julia比較 その24【行列演算⑦】
内積の定義を確認。 内積は単なる計算方法であり、内積そのものにに意味はない。 ただし、特性のようなものはある。 内積の分かり易い特性としては相関性。 類似度とも言われ、特に内積を利用したものをcos類似度と呼ばれる。 基本的な計算であるが故に畳み込み積分、類似成分抽出、方程式などに利用される。
MATLAB,Python,Scilab,Julia比較 その23【行列演算⑥】
やっぱり線形代数の基礎はやっておく。 割とすぐに詰む可能性があるから。 説明手順をとりあえず決めた。 行列の内積の公式の再確認。 方程式と内積。 連立方程式と行列。 行列によるベクトル変換。 行列によるベクトル群変換。 行列の内積の公式の再確認。 一旦忘れてOK。
MATLAB、Python、Scilab、Juia比較ページはこちらはじめにMATLAB,Python,Scilab,Julia比較に於ける、以下を元に書き直したもの。MATLAB,Python,Scilab,Julia比較 その18【行列
MATLAB,Python,Scilab,Julia比較 その22【行列演算⑤】
行列の転置について説明。 転置自体は、行列の行と列を入れ替えるだけの話。 具体的な利用シーンというのは特になく、計算都合で使うことがほとんど。 良く使う処理なので、名前が付いていた方が利便性が良いという考え方が妥当そう。
MATLAB,Python,Scilab,Julia比較 その21【行列演算④】
行列の除算について。 行列は原則的に除算は存在しないが、「逆行列を掛ける」がそれに該当する。 さらに行列の積は結合法則はあれど、交換法則はない。 上記に伴い、左除算、右除算と言う概念が出てくる。 逆行列の位置が変わる。 数式上ではあまり出て来ないが、各ツール、言語がサポートしていることが多い。
MATLAB,Python,Scilab,Julia比較 その20【行列演算③】
今回はアダマール積について。 演算子がいろいろあり、アダマール積かどうかは文脈で読み解くしかない。 しかし、特殊な状況でしか登場しないので、そういうものがあるという程度で留めておいてもよいかも。 画像処理の畳み込みで出てくることは多い。
MATLAB,Python,Scilab,Julia比較 その19【行列演算②】
行列の乗算(内積)について説明。 上記はなぜそのような演算になるか不明(太郎くん談)。 これを理解するには線形代数の基礎部分を理解する必要がある。 線形代数すべてを説明するとなると大変だが、基礎部分を可能な限り簡単に説明予定。
MATLAB,Python,Scilab,Julia比較 その18【行列演算①】
代表的な行列演算を列挙。 基本的な四則演算に加えて、アダマール積、べき乗、転置。 まずは加算、減算。 各要素単位で加算、減算すればOK。 当然、「次元を一致させる」必要がある。
MATLAB、Python、Scilab、Juia比較ページはこちらはじめにMATLAB,Python,Scilab,Julia比較に於ける、以下を元に書き直したもの。MATLAB,Python,Scilab,Julia比較 その13【基本
MATLAB,Python,Scilab,Julia比較 その17【基本的な使い方⑦】
Juliaでスライシングを実施。 基本的にはMATLABと似た感じ。 ただし、配列添え字用のカッコが違う。 あと、スライシングの結果、ベクトルとなった場合は列ベクトルになる。 行列としてスライシングした場合は、元の行と列の関係は維持される。
MATLAB,Python,Scilab,Julia比較 その16【基本的な使い方⑥】
Python(Numpy)でスライシングを実施。 0オリジンのためMATLABと設定する数値が異なる。 加えて、区間演算子の終端は範囲に指定範囲には含まれない点に注意。 Scilabでスライシング。 MATLABと同一。
MATLAB,Python,Scilab,Julia比較 その15【基本的な使い方⑤】
基本的な使い方の続きとしてスライシングについて。 特定の要素、特定範囲を抽出可能。 区間演算子start:step:endを元に範囲抽出するが、step=1なことがほとんどなので、stepを省略したstart:endの書き方になることが多い。
MATLAB,Python,Scilab,Julia比較 その14【基本的な使い方④】
Juliaの基本的な使い方。 Juliaは列ベクトルがデフォルト。 MATLAB、Scilabは行ベクトルがデフォルトであるため、扱いに気を付ける必要がある。 列ベクトルがデフォルトになっている理由としては、数式との一致性を考慮した結果と推測される。
MATLAB,Python,Scilab,Julia比較 その13【基本的な使い方③】
Juliaの基本的な使い方・・・の前にいろいろクセが違うのでそれの調査。 start:step:endの形式(区間演算子)で等差数列を表現できるが、この状態ではメモリ上に実態を持っていない。 よって、読み出しはできるが、書き込みはできない。 区間演算子に実態を持たせるにはVectorに渡すことで解決。
MATLAB,Python,Scilab,Julia比較 その12【基本的な使い方②】
Python(Numpy)とScilabの基本的な使い方。 Python(Numpy)は以前から使っている物なので手馴れたもん。 ScilabはMATLABと同一の記載方法でいける。 ただし、コメントアウトが「%」じゃなくて「//」 ここも一緒だと楽だったが・・・。
MATLAB,Python,Scilab,Julia比較 その11【基本的な使い方①】
各ツール、言語の基本的な使い方として以下をやってみる。 単純なスカラー計算。 ベクトルの定義。 等差数列の作成。 行列の定義。 まずは手馴れたMATLABで実施。
簡単に行列の存在意義を説明。 当然、連立方程式以外にも利用シーンは多数あるが、まずはシンプルなもので。 逆行列は掃き出し法で求められる。 ただし、ツール、言語側で逆行列を求めれる機能が入っていることが多いので自身で計算することは少ない。 連立方程式は複数の関数の交点を求めている。
MATLAB,Python,Scilab,Julia比較 その10【行列⑤】
連立方程式を解くということは複数の関数の交点を求めるということ。 行列はそれを一撃で解ける。 ためしにMATLABで算出したら一撃。 移動体の予測線を関数と見なすと、交点を求める重要性がわかりやすいかも?
MATLAB,Python,Scilab,Julia比較 その9【行列④】
逆行列は掃き出し法にて求めることができる。 実際に掃き出し法を実施。 前回使用した逆行列が求まった。 MATLAB、Python(Numpy)、Scilab、Juliaでは逆行列を求める機能があるので、直に計算することはない・・・想定。
MATLAB,Python,Scilab,Julia比較 その8【行列③】
行列で連立方程式を解いてみた。 両辺を行列で割る・・・のがだが、行列は除算が無く、逆行列を掛けるで除算を実現する。 逆行列は掃き出し法と呼ばれる方法で求めるが、ここでは公式を使用。 結果として、答えが求まった。 特徴としてはルールが明確なためプログラム化し易いという点。
MATLAB,Python,Scilab,Julia比較 その7【行列②】
とりあえず連立方程式を普通に解いてみた。 しかし、そのプロセスをプログラム化するのは超難解。 つまり、行列を使うとこの超難解な状態から脱することができる。 今回は、連立方程式を行列で表現するとどうなるか。ってところまで。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
多層パーセプトロンの隠れ層のユニット数を2から4に変えたMATLABコードで分類を実施。 大きく2パターンの分類パターンがある やや複雑な分類パターンが4ユニットにすることで出てきたもの。
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。
はじめに MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第3章では画像処理、座標変換の話がメインだった。 第4章は分類問題関連の話がメインとなる。基本的には以下の流れとなる。 形式ニューロン 決定境界線の安
多層パーセプトロンの隠れ層のユニット数を増やす。 表現力が上がるはず。 局所最適解にハマらないというより大域最適解に近い局所最適解が増えるというイメージ。 プログラム上の修正点確認。 ベクトル、行列演算ができるため修正範囲は極小。
非線形分類をしたが実は問題が発生している。 非線形分類が失敗する原因を特定するため決定境界線と誤差関数の推移をモニタ。 案の定、局所最適解にハマってる。 つまりエポック数を増やしても対策にはならない。 隠れ層のユニット数を増やす、最適化アルゴリズムを使用するのが対策案。
非線形分類が失敗する原因を特定するため決定境界線と誤差関数の推移をモニタ。 案の定、局所最適解にハマってる。 つまりエポック数を増やしても対策にはならない。 隠れ層のユニット数を増やす、最適化アルゴリズムを使用するのが対策案。
非線形分類をしたが実は問題が発生している。 20%くらいの確率で分類ができない。 原因がわかるように誤差関数の推移や決定境界線の推移のアニメーションを見てみる予定。
多層パーセプトロンによる分類をJuliaで実施。 一応ちゃんと分類できた。
多層パーセプトロンによる分類をScilabで実施。 一応ちゃんと分類できた。 等高線による分類表記がうまく行かなかったため、境界線をplotしている。
多層パーセプトロンによる分類をPythonで実施。 一応ちゃんと分類できた。
多層パーセプトロンによる分類をMATLABで実施。 一応ちゃんと分類できた。
多層パーセプトロンによる分類をJuliaで実施。 一応ちゃんと分類できた。
多層パーセプトロンによる分類をScilabで実施。 一応ちゃんと分類できた。 等高線による分類表記がうまく行かなかったため、境界線をplotしている。
多層パーセプトロンによる分類をPythonで実施。 一応ちゃんと分類できた。
多層パーセプトロンによる分類をMATLABで実施。 一応ちゃんと分類できた。
連鎖律の「プログラミングするための最適化」は連鎖律上の共通部分の特定が重要。 連鎖律の共通部分の算出。 共通変数で実際の処理に相当する数式を書き出し。
多層パーセプトロンの重みを決定するための誤差逆伝播法が必要。 誤差逆伝播法の全体像を確認。 出力層の連鎖律と各偏導関数を導出。 隠れ層から誤差関数までの連鎖律を導出。
GUGA 生成AIパスポート試験の問題集を設置。 現状は121問ほど放り込んでいる。問題のカテゴリは現状以下の範囲 第4章 情報リテラシー・基本理念とAI社会原則 第5章 テキスト生成AIのプロンプト制作と実例 問題は随時追加予定。(すべて
GUGA 生成AIパスポート試験の問題集を設置。 現状は121問ほど放り込んでいる。問題のカテゴリは現状以下の範囲 第4章 情報リテラシー・基本理念とAI社会原則 第5章 テキスト生成AIのプロンプト制作と実例 問題は随時追加予定。(すべて
連鎖律の共通部分の算出。 いままでの部品の組み合わせで導出できる。 共通変数で実際の処理に相当する数式を書き出し。 ついでに学習率を加味した各重み、各バイアスの更新式も記載。
正規方程式による重回帰分析をMATLABで実施。 誤差はあるものの目的の係数の算出はできている。 3Dグラフの散布図はscatter3、メッシュ状の平面関数はmeshを使用して表現する。
正規方程式による重回帰分析をScilabで実施。 誤差はあるものの目的の係数の算出はできている。 3DグラフはPython寄りの仕様。 PyPlotがmatplotlibのラッパーであるため。
正規方程式による重回帰分析をScilabで実施。 誤差はあるものの目的の係数の算出はできている。 3Dグラフの散布図はscatter3d。 3D散布図はVersionによっては表現できなかったら関数名が違ったりするので注意が必要。
正規方程式による重回帰分析をPython(NumPy)で実施。 誤差はあるものの目的の係数の算出はできている。 3Dグラフの散布図はscatter3D、平面関数はplot_wireframeを使用して表現する。 projection='3d'のオプションを忘れずに。
正規方程式による重回帰分析をMATLABで実施。 誤差はあるものの目的の係数の算出はできている。 3Dグラフの散布図はscatter3、メッシュ状の平面関数はmeshを使用して表現する。
正規方程式を使って重回帰分析を行う。 重回帰分析の二乗和誤差関数の定義。 正規方程式の各成分の定義。 サンプリングデータは特定の多項式に±1の乱数を載せたものを使用。 特定の多項式と近い係数が求まればOK。
正規方程式を使って重回帰分析を行う。 重回帰分析の二乗和誤差関数の定義。 正規方程式の各成分の定義。 サンプリングデータは特定の多 特定の多項式と近い係数が求まればOK。
正規方程式による単回帰分析をJuliaで実施。 MATLABと同じ結果が得られた。 演算部分はMTALABと同一。 ベクトル化演算子であるdot演算子を利用する局面はある。
正規方程式による単回帰分析をScilabで実施。 MATLABの演算と同じ結果が得られた。 計算部分は全く一緒。 グラフ表示部の微調整の仕方が違う。
正規方程式による単回帰分析をPython(NumPy)で実施。 MATLABと同じ結果が得られた。 ベクトル、行列の内積は「@」。 「*」にしてしまうとアダマール積になってしまうので注意。
正規方程式による単回帰分析をMATLABで実施。 以前の最小二乗法と同じ結果が得られた。 数式で定義した通りの演算をするのみ。
正規方程式による単回帰分析をJuliaで実施。 MATLABと同じ結果が得られた。 演算部分はMTALABと同一。 ベクトル化演算子であるdot演算子を利用する局面はある。
正規方程式による単回帰分析をScilabで実施。 MATLABの演算と同じ結果が得られた。 計算部分は全く一緒。 グラフ表示部の微調整の仕方が違う。
正規方程式による単回帰分析をPython(NumPy)で実施。 MATLABと同じ結果が得られた。 ベクトル、行列の内積の演算子は「@」。 「*」にしてしまうとアダマール積になってしまうので注意。
正規方程式による単回帰分析をMATLABで実施。 以前の最小二乗法と同じ結果が得られた。 数式で定義した通りの演算をするのみ。
正規方程式を使って単回帰分析を行う。 単回帰分析の二乗和誤差関数の定義。 正規方程式の各成分の定義。 上記を元に各ツール、各言語で演算を実施すればOK。
正規方程式を使って単回帰分析を行う。 単回帰分析の二乗和誤差関数の定義。 正規方程式の各成分の定義。 上記を元に各ツール、各言語で演算を実施すればOK。
いままでの知識の総動員すべく数式列挙。 二乗和誤差の偏導関数を元に最小化問題へ。 正規方程式がわかっていると、単回帰、重回帰、多項式回帰が一撃で解けるようになる。
二乗和誤差の偏導関数を元に最小化問題へ。 上記式を元に極小値を求める式へ。 これをxを求める式に変形したものが正規方程式。 正規方程式がわかっていると、単回帰、重回帰、多項式回帰が一撃で解けるようになる。
グラム行列が対称行列であることを利用して、二次形式であることを保証してしまう。 二次形式を保証した上で、それの偏導関数を利用する。