MATLAB、Python、Scilab、Julia比較ページはこちら はじめに の、 MATLAB,Python,Scilab,Julia比較 第4章 その64【逆伝播⑮】 を書き直したもの。 単純パーセプトロンに対する逆伝播を行う。まず
シミュレーションで実物を扱わなくても仕事ができる環境を目指す。つまり家に引きこもって外に出なくてもOKな世界。
【Ethernet】車載ネットワーク その56【lwIP+npcap②】
ネットワークシミュレーションのビルド環境は実績のあるVisualStudio 2017 express。 lwIPとnpcap-SDKも入手しておく。 デバッグ/検証をし易くするようWiresharkもインストールしておく。
【Ethernet】車載ネットワーク その55【lwIP+npcap①】
バックナンバーはこちら。はじめに太郎くんの思いつきネットワークシミュレーション環境。簡単に言うと、lwIPとnpcapの組み合わせっぽい話。登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。
【Ethernet】車載ネットワーク その54【npcap⑨】
バックナンバーはこちら。はじめにnpcapのパケット送信APIについて登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さんの...
【Ethernet】車載ネットワーク その53【npcap⑧】
バックナンバーはこちら。はじめにnpcapで実際に送信したみた時の話登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さんのイ...
【Ethernet】車載ネットワーク その52【npcap⑦】
バックナンバーはこちら。はじめに今回からnpcapで送信の話登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さんのイラストを...
【Ethernet】車載ネットワーク その51【npcap⑥】
バックナンバーはこちら。はじめにnpcap 次のパケットを読み込むAPIについて。登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「し...
【Ethernet】車載ネットワーク その50【npcap⑤】
バックナンバーはこちら。はじめにnpcap ネットワーク上のパケットを見るためにパケットキャプチャハンドルを取得のAPI。登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の
【Ethernet】車載ネットワーク その49【npcap④】
バックナンバーはこちら。はじめにnpcap ネットワークデバイスのリストの構築のAPI。登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開...
【Ethernet】車載ネットワーク その48【npcap③】
バックナンバーはこちら。はじめにnpcapでパケット取得で使用したAPI登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さん...
【Ethernet】車載ネットワーク その47【npcap②】
バックナンバーはこちら。はじめにnpcapでパケット取得登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さんのイラストを使用...
【Ethernet】車載ネットワーク その46【npcap①】
バックナンバーはこちら。はじめにnpcap調査の話。登場人物博識フクロウのフクさんイラストACにて公開の「kino_k」さんのイラストを使用しています。エンジニア歴8年の太郎くんイラストACにて公開の「しのみ」さんのイラストを使用して...
【Ethernet】車載ネットワーク その45【生パケット送信②】
pcapはpacket capture関連のAPI仕様。Windows向けのpcapは以下3種類。WinPcap:Windows10では不安定。Win10Pcap:Windows10でも問題無いが開発が止まっている。npcap:Wiresh
【Ethernet】車載ネットワーク その44【生パケット送信①】
Windowsから生のEthernetFrame送受信をするはめになった。生Socketが扱えないWindowsだとやや困難。パケットアナライザ、ネットワークアナライザ、スニファというものが存在。Wiresharkが有名。Wireshark
【Ethernet】車載ネットワーク その43【lwIP疑似受信⑥】
IPフラグメントの順番入れ替えの判定のソースコードと該当関数説明。Ethnertフレームを連結リストで管理。連結は常にソートされた状態。開始位置と完了位置を持ってパケットの完全性を評価している。
【Ethernet】車載ネットワーク その42【lwIP疑似受信⑤】
IPフラグメントの受信フレーム順番入れ替えをしても受信した。ログも確認したが、最終フレームで打ち切ってることはしていない。
【Ethernet】車載ネットワーク その41【lwIP疑似受信④】
IPフラグメントの受信フレーム順を変える疑似受信コード作成。渡す受信フレームの順番を入れ替えるだけ。組み込み系として、この仕様は重くないか?重いが、割とよくある話でもあり、lwIPも対応しているであろうと楽観視。
【Ethernet】車載ネットワーク その40【lwIP疑似受信③】
IPフラグメントはEthernetFrameの順番が入れ替わっても結合してくれる仕様。lwIPが対応しているかは不明。
【Ethernet】車載ネットワーク その39【lwIP疑似受信②】
lwIP疑似受信は成功。IPフラグメントに対応していた。IPフラグメントにまつわる特殊な動作があるらしい。
【Ethernet】車載ネットワーク その38【lwIP疑似受信①】
lwIP疑似受信用のソースコード。詳細は前回までのlwIPのAPI説明を参照願う。
【Ethernet】車載ネットワーク その37【lwIP⑬】
lwIPのEthnertFrameの疑似受信について説明。ethernet_input関数を呼び出すだけだが引数が曲者。pbufという連結リストのバッファにパケットをコピーする必要がある。
【Ethernet】車載ネットワーク その36【lwIP⑫】
lwIPのUDP受信の説明。受信用APIは存在せず、受信コールバック設定用APIが存在する。受信コールバックでデータを取得可能。送信元IPアドレス、ポート番号もコールバック時に取得できる。
【Ethernet】車載ネットワーク その35【lwIP⑪】
Bindという用語について調べた。lwIPのIPアドレス、ポートへのBindについて説明。IP_ANY_TYPEを指定すると、全インターフェースに紐づく。ポート0を指定すると自動割り付け。送信用Socketの場合に利用されることが多い。
【Ethernet】車載ネットワーク その34【lwIP⑩】
lwIPのUDP Socket生成についての説明。内部で固定長メモリプールでメモリ領域の確保をしている。固定長メモリプールはITRON等のRTOSにも実装されている高速な動的メモリ取得解放のロジック。
【Ethernet】車載ネットワーク その33【lwIP⑨】
lwIPのリンクアップについて説明。アップ(UP)が物理層。リンクアップ(link-up)がデータリンク層。余談的にリンクローカルアドレスの説明。
【Ethernet】車載ネットワーク その32【lwIP⑧】
lwIPのネットワークインターフェースの初期化について説明。netif_set_up関数を使用する。ネットワークインターフェースをUP状態にするもの。実は呼ばなくてもOKな疑惑があるが、流儀としては呼び出しておくべき。
【Ethernet】車載ネットワーク その31【lwIP⑦】
lwIPのマルチキャストグループの参加について説明。igmp_joingroup_netif関数を使用。上記関数を呼び出すとIGMPでグループ参加を通知するためのパケットが送信される。
【Ethernet】車載ネットワーク その30【lwIP⑥】
lwIPのネットワークインターフェースの追加について説明。netif_add関数を使用する。引数はIPアドレス、ネットマスク等のIP層の他、データリンク層由来のものもある。データリンク層初期化関数はコールバック関数initに渡す。
【Ethernet】車載ネットワーク その29【lwIP⑤】
lwIPの初期化関数はlwip_init。lwip_initの内部は#if~#endifで必要最低限の初期化が可能。include/lwip/opt.hで使用する機能の有効/無効の切り替えができる。
【Ethernet】車載ネットワーク その28【lwIP④】
lwIPの制御手順概要を説明。一般的なSocketと違ってネットワーク関連の初期化も必要。IPフラグメントはIP層の仕様に組み込まれているので利用側は特に何もしなくてOK。
【Ethernet】車載ネットワーク その27【lwIP③】
lwIPをPC上でビルドした。修正はarch/cc.hに起因するもの。arch/cc.hはコンパイラ依存部の辻褄合わせようのヘッダファイル。
【Ethernet】車載ネットワーク その26【lwIP②】
lwIPのソースコードを入手。開発環境はVisualStudio 2017 express。community版だといろいろ利用する上で制約があるので。
「ブログリーダー」を活用して、KEIさんをフォローしませんか?
MATLAB、Python、Scilab、Julia比較ページはこちら はじめに の、 MATLAB,Python,Scilab,Julia比較 第4章 その64【逆伝播⑮】 を書き直したもの。 単純パーセプトロンに対する逆伝播を行う。まず
逆伝播を行った際の重みの動き方を確認するプログラムをScilabで作成。 おおよそ狙ったところに収束。
逆伝播を行った際の重みの動き方を確認するプログラムをPythonで作成。 おおよそ狙ったところに収束。
逆伝播を行った際の重みの動き方を確認するプログラムをMATLABで作成。 おおよそ狙ったところに収束。
はじめに MATLAB,Python,Scilab,Julia比較するシリーズの第4章。 第3章では画像処理、座標変換の話がメインだった。 第4章は分類問題関連の話がメインとなる。基本的には以下の流れとなる。 形式ニューロン 決定境界線の安
逆伝播を行った際の重みの動き方を確認するプログラムをJuiaで作成。 おおよそ狙ったところに収束。
逆伝播を行った際の重みの動き方を確認するプログラムをScilabで作成。 おおよそ狙ったところに収束。
逆伝播を行った際の重みの動き方を確認するプログラムをPythonで作成。 おおよそ狙ったところに収束。
逆伝播を行った際の重みの動き方を確認するプログラムをMATLABで作成。 おおよそ狙ったところに収束。
全体の位置づけと各偏導関数を確認。 入力、出力(ラベル)が複数であるが故に連鎖律のルートが複数になる。 入力、出力が複数であるが故の連鎖律の事情のもう一つの考え方。 逆伝播の確認用プログラムのフローを記載。
連鎖律に於ける誤差関数の位置づけと偏導関数を確認。 活性関数(シグモイド関数)のブロック図と連鎖律上の位置づけと偏導関数を確認。 入力層のブロック図と連鎖律上の位置づけと偏導関数を確認。 バイアスのブロック図と連鎖律上の位置づけと偏導関数を確認。
誤差逆伝播法とか単純パーセプトロンに関連する用語を確認。 逆伝播を行う単純パーセプトロンの構成を確認。 一連の合成関数について書き出し。 合成関数を構成する各数式を書き出し。 合成関数の微分こと連鎖律について説明。 学習データを加味した場合の多変量関数の連鎖律について簡単に説明。
逆伝播の確認用プログラムのフローを記載。 逆伝播の挙動を確認するため、重みの開始位置とバイアスは固定。 ベクトル、行列演算をプログラム都合に合わせて表現しなおし。
入力、出力が複数であるが故の連鎖律の事情のもう一つの考え方。 誤差関数は二乗和誤差関数であり、本来であればΣが含まれる。 よって、連鎖律にもΣが含まれる形を取ると前回と同一の数式が得られる。
入力、出力(ラベル)が複数であるが故に連鎖律のルートが複数になる。 上記の図示と数式を説明。
全体の位置づけ確認。 各偏導関数を再掲。 各偏導関数を連鎖律に則して結合。
バイアスのブロック図と連鎖律上の位置づけを確認。 バイアスの偏導関数を確認。 もとの式がシンプルな上、1次で係数もないので1になる。
入力層のブロック図と連鎖律上の位置づけを確認。 入力層の偏導関数を確認。 もとの式がシンプルなので偏導関数もシンプル。
活性化関数の微分について説明。 活性関数のブロック図と連鎖律上の位置づけを確認。 シグモイド関数の導関数を復習。 シグモイド関数の偏導関数を確認。
連鎖律に於ける誤差関数の位置づけを確認。 ブロック図的には一番後ろだが、連鎖律としては先頭。 誤差関数の確認。 誤差関数の偏導関数の確認。
二次形式の多項式表現と行列表現の計算をJuliaで実施。 3Dグラフを表示する際は、"projection" => "3d"が必要。 meshgridが無いので自作した。
二次形式の多項式表現と行列表現の計算をScilabで実施。 基本的にはMATLABと一緒。 ただし、reshapeの代わりにmatrixを使う必要がある。
二次形式の多項式表現と行列表現の計算をPythonで実施。 3Dグラフを表示する際は、projection='3d'が必要。 plot_wireframeでワイヤーフレームでグラフ表示ができる。
二次形式の多項式表現と行列表現の計算をMATLABで実施。 meshgridにx軸とy軸を入力とすることで平面座標が得られる。 平面座標を元に2変数の演算を実施。 演算結果をmesh関数を使用して3Dグラフに表示。
二次形式の多項式表現と行列表現の計算をJuliaで実施。 3Dグラフを表示する際は、"projection" => "3d"が必要。 meshgridが無いので自作した。
二次形式の多項式表現と行列表現の計算をScilabで実施。 基本的にはMATLABと一緒。 ただし、reshapeの代わりにmatrixを使う必要がある。
二次形式の多項式表現と行列表現の計算をPythonで実施。 3Dグラフを表示する際は、projection='3d'が必要。 plot_wireframeでワイヤーフレームでグラフ表示ができる。
二次形式の多項式表現と行列表現の計算をMATLABで実施。 meshgridにx軸とy軸を入力とすることで平面座標が得られる。 平面座標を元に2変数の演算を実施。 演算結果をmesh関数を使用して3Dグラフに表示。
対称行列と二次形式について説明。 二次形式は多項式表現と行列表現ができる。 行列表現ができると計算がしやすくなる。 しかし、全座標を入れるにはfor文を使用する必要がある。 for文を削除するための仕掛けを入れておいた。
二次形式の行列表現をfor文を使用せずに一括計算するための仕掛けを考える。 内積を分解してアダマール積と定数関数との内積にする。 これにより、x^Tとxの直積的な結果を抑制。
二次形式の行列表現と多項式表現の関係性を示した。 行列Aが対称行列になることを制約とすると行列表現と多項式表現に可逆性を付加することができる。 これに伴い、等しいものとして扱うことが可能となる。 実際に行列表現と多項式表現が等しいかを各ツール、各言語で確認したいが、その前にベクトル、行列のまま演算する仕掛けを考える必要がある。
二次形式について確認。 すべての候の次数が2である多項式。 二次形式を一般化して行列表現。 行列表現できた方が計算しやすい。
対称行列について説明。 対角部を中心に対象となっている正方行列。 単位行列も対称行列の一種ではある。 厳密には対称行列の一種である対角行列の一種が単位行列。 対称行列は二次形式、二次形式の微分、グラム行列で使用する予定。
1次関数最小二乗法こと単回帰分析のあとは重回帰分析、多項式回帰分析にチャレンジ。 重回帰分析、多項式回帰分析を行うには正規方程式が必要。 正規方程式を導出するまでの因果関係を図示した。
1次関数最小二乗法こと単回帰分析のあとは重回帰分析、多項式回帰分析にチャレンジ。 重回帰分析、多項式回帰分析を行うには正規方程式が必要。 正規方程式を導出するまでの因果関係を図示した。
平均分散共分散を使用した一次関数最小二乗法をJuliaで記載。 covとvarを使用する。 covは共分散を返す。 MATLABのように分散共分散行列にはなっていない。 パラメータを2列に並べて渡すと分散共分散行列を返す。
平均分散共分散を使用した一次関数最小二乗法をScilabで記載。 covとmtlb_varを使用する。 分散取得用の関数にvarianceは不偏分散しか返さない。 covは共分散だけでなく、分散共分散行列が取得される。 よって、covだけでも分散は取得可能。
平均分散共分散を使用した一次関数最小二乗法をPython(Numpy)で記載。 covとvarを使用する。 covは共分散だけでなく、分散共分散行列が取得される。 よって、covだけでも分散は取得可能。
平均分散共分散を使用した一次関数最小二乗法をMATLABで記載。 covとvarを使用する。 covは共分散だけでなく、分散共分散行列が取得される。 よって、covだけでも分散は取得可能。
平均分散共分散を使用した一次関数最小二乗法をJuliaで記載。 covとvarを使用する。 covは共分散を返す。 MATLABのように分散共分散行列にはなっていない。 パラメータを2列に並べて渡すと分散共分散行列を返す。