ベイジアン研究所

技術(人工知能、数学等)と心理の話をしています。

【線形代数学入門】行列の掃き出し

1. 記事の目的 以下の記事で、行列の基本変形に関して述べた。本記事では行列を用いて連立方程式を解く際の、行列の操作である掃き出しについて解説する。掃き出しの操作としては、行列の基本変形を繰り返して行われるものである。 2. 行列の掃き出し 型行列…

【線型代数学入門】基本変形

1. 記事の目的 以下の記事で行列の演算に関して述べた。本記事では行列を利用した連立一次方程式の解法で必要となる基本変形に関して解説する。 camelsan.hatenablog.com camelsan.hatenablog.com 2. 基本変形 行列を扱う際、できるだけ簡単な形の行列に変形…

ブログのネタを思いつく方法

1. 記事の目的 ブログのネタが全然思いつかない人への対処法を経験から述べたいと思います。PVが少ないくせに記事数だけが増えてしまった人間の戯言です。 2. 結論 何か勉強しましょう。 3. 理由 例えば以下の記事は、私がプログラミングを勉強していたとき…

【線形代数学入門】正則行列

記事の目的以下の記事で行列の演算に関して述べた。本記事では行列の割り算に対応するものが存在する行列である正則行列について解説する。 camelsan.hatenablog.com camelsan.hatenablog.com 2. 正方行列 ここでは行列の型が型(縦と横の大きさが同じ)行列を…

【線形代数学入門】行列の演算(区分け)

1. 記事の目的 以下の記事で行列の演算(積)について述べた。本記事では大きい型の行列をそれより小さい型の行列の演算(特に積)へと帰着させるテクニックである、行列の区分けについて解説する。 camelsan.hatenablog.com 2. 区分けの例 次の行列を考える。 …

【線形代数学入門】行列の演算(積)

1. 記事の目的 以下の記事で行列の演算(和とスカラー倍)について述べた。本記事では行列の積に関して解説する。 camelsan.hatenablog.com 2. 行列の積 が型行列、が型行列であるとき、積を型行列として次のように定義する。型行列の成分は、 とする。 (1)式…

【線形代数学入門】行列の演算(和とスカラー倍)

1. 記事の目的 以下の記事で行列の定義を述べた。本記事では行列の演算(和とスカラー倍)に関して述べる。 camelsan.hatenablog.com 2. 行列の和 2つの型行列、に対して、行列の和を次のように定義する。の各成分は、対応するとの成分の和とする。即ち、 のと…

【線形代数学入門】概要と行列の定義

1. 記事の目的 線形代数学の解説を目的に、本記事では線形代数学の概要と線形代数学で非常に重要となる行列の定義について述べる。 2. 線形代数の概要 線形代数学とは、ベクトル空間という代数系を扱う代数学である。ベクトル空間同士の写像は行列と1体1対応…

とある曲の歌詞から

今週のお題「大人になったなと感じるとき」 最近社会人になったばかりで、毎日あくせく働いて、自分は大人になったなぁ・・・という感覚は正直なところあまり感じていなかった。なんだったら学生の時は研究をしていた身なので今でも研究に身を置いているので…

【深層学習入門】誤差逆伝播法

1. 記事の目的 以下の記事でニューラルネットワークの学習方法に関して概略的な解説を行なった。本記事ではニューラルネットワークの学習方法に関し、より具体的に誤差逆伝播法と呼ばれる方法に関して解説を行う。 camelsan.hatenablog.com 2. 概要 ニューラ…

【深層学習入門】ニューラルネットワークの学習

1. 記事の目的 以下の記事でニューラルネットワークとは何かを解説した。本記事では、ニューラルネットワークの学習方法について理論的に解説を行う。 camelsan.hatenablog.com 2. 概要 ニューラルネットワークの学習は教師あり学習の誤差逆伝搬法と呼ばれる…

【深層学習入門】ニューラルネットワーク

1. 記事の目的 深層学習の基本に関して理論的な解説を行う。本記事ではニューラルネットワークについて解説を行う。 2. ニューロン ニューラルネットワークは、人の脳の構造を模して作られている。人の脳は「ニューロン」と呼ばれる、神経細胞の1単位を組み…

【ベイズ理論入門】ベイズの定理

1. 記事の目的 ベイズ理論に関して、数式を用いない解説を以下の記事で行った。 camelsan.hatenablog.com 本記事では、ベイズの定理を中心に、数式を用いたベイズ理論の基本の解説を行う。 2.確率の定義 サイコロを振ったら出てくる目全ての集合など、試行の…

【ベイズ理論入門】ベイズ確率の基本

1. 記事の目的 ベイズ確率論は一言で言うと、「結果がわかっている時にそれを引き起こした原因の確率を求める確率論である」。これはベイズの定理が意味することでもある。本記事では数式による説明なしで原因の確率を求めるとはどう言うことかを解説する。…

2020年買って良かったもの3選

お題「#買って良かった2020」 2020年という年は、個人的にも世間的にも印象的な年だったと思う。世間的には、100年に一度のウイルスの蔓延、緊急事態宣言の発令、首相の交代など。個人的には、初めてのインターン、初めての内定、初めての就職、初めての一人…

【opencv-python】k近傍法を利用した手書き数字認識

1. 記事の目的 参考文献[2]のk近傍法を使った手書き文字認識において、opencv-python 4.4.0に対応していなかったので、対応するコードを提供する。具体的には、次の2点を変更する必要がある。 cv2.KNearest()をcv2.ml.KNearest_create()にする。 train()関…

【opencv-python】ステレオ画像からの距離計測

1. 記事の目的 参考文献[2]のステレオ画像からの距離計測において、opencv-python 4.4.0に対応していなかったので、対応するコードを提供する。具体的には、createStereoBM()と言う関数をStereoBM_create()に変更すれば良い。 2. 実行確認済み環境 Mac OS Ca…

【opencv-python】エピポーラ線の描画

1. 記事の目的 参考文献[2]のエピポーラ線の描画において、opencv-python 4.4.0に対応していなかったので、対応するコードを提供する。また、サンプルコードを使いやすいです形にまとめた。 2. 実行確認済み環境 Mac OS Catalina 10.15.7 Python 3.8.5 openc…

【opencv-python】カメラキャリブレーション(箱の描画)

1. 記事の目的 opencv-pythonのチュートリアル(http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_calib3d/py_pose/py_pose.html#pose-estimation)で、キャリブレーションのパラメーターがnumpy形式で保存してから読み込むと…

【opencv-python】SIFT()のsegmentation fault: 11エラー

1. エラー内容 opencv-pythonのSIFTアルゴリズムを使った、特徴点記述を公式チュートリアル(http://labs.eecs.tottori-u.ac.jp/sd/Member/oyamada/OpenCV/html/py_tutorials/py_feature2d/py_sift_intro/py_sift_intro.html#sift-intro)を参考に実行すると、…

【C言語入門】ポインタ編

準備 ポインタについて説明をする前に、関数の引数について復習する。 関数に実引数を受け渡す際に、関数の中で実引数のコピーが生成される。このコピーを書き換えても、元の変数には影響しない。 詳しくは関数編を参照してほしい。 camelsan.hatenablog.com…

深層学習の勉強方法

昨今、「AI」と言う技術が流行っている。AIは深層学習と言う機械学習理論の一部から成り立っている。AIを理論的に知るためには深層学習を知る事が重要である。 ここでは深層学習の学習手順を理論と実装面から述べる。 理論編 1. 数学 もし、行列や偏微分など…

【C言語入門】文字列編

1. 文字列とは printf関数で、文字を画面に表示する時、次のように書いた。 printf("あいうえお"); "あいうえお"のように、文字の並びを二重引用符で囲んだものを「文字列リテラル」と言う。 文字列リテラルは、「ナル文字」(値が0の文字)と呼ばれる文字が…

【C言語入門】関数編2

1. 値を返さない関数 関数とは処理を一纏めにしたものである。値を返却する事で元の処理に役立つが、値を返却しない関数も書く事ができる。例えば次のように表示のみを行う関数である。 void aisatsu(int n) { while (n-->0) printf("Hello World!"); } 先頭…

【C言語入門】関数編1

0. 関数とは プログラミングで言う関数とは、数学における関数とは意味が異なります。同じような処理をいちいち全て書くのでは、作業効率も悪いですし、間違えも増えます。そのような「同じ処理」をひとかたまりにしたものを、「関数」と呼びます。 C言語の…

【C言語入門】配列編

1. 配列とは 同じ型で、連続した変数などは統一的に扱いたい。(例えば、1から100までの整数など)そのような時、配列を使用するのが便利である。 配列とは、同じ型の集まりを番号で管理したものである。例えば次のように宣言する。 int a[5]; このよう…

【C言語入門】for文、while文編

0. プログラムの流れの繰り返し プログラミングは1回の流れで終了せずに、何度も同じ流れを繰り返させる事ができる。これを用いる事で作業を大幅に自動化させる事ができる。例えば、 #include <stdio.h> int main(void) { int i=1, j=1; for (i=1; i<10; i++) { for </stdio.h>…

【C言語入門】if文、switch文編

0. プログラムの流れの分岐 プログラムは基本的に上から下へと進んでゆく。しかし、if文と言うコードを用いることで、プログラムを分岐させる事ができる。例えば、次のようなコードを書く事ができる。 #include <stdio.h> int main(void) { int num=0; printf("整数を</stdio.h>…

【C言語入門】演算と型編

1. 演算 プログラミングにおいて、「演算子」とは、+や*などの記号である。働きはその名の通り、数字の演算を行う物である。 また、演算の対象となる数や変数のことを「オペランド」と言う。1番目の数を第一オペランドなどと言う。 「式」とは変数や定数な…

【C言語入門】変数編

1. 変数とは 数学において変数を使って方程式の解を求めるように、プログラミングにおいても変数を用いる。しかしその意味は数学のものとは少し異なる。 プログラミングにおいて、「変数」とは、数値や文字を格納する箱のことである。箱の名前と、中にどのよ…