読者です 読者をやめる 読者になる 読者になる

ピタゴラス数を無限に生成する

先日久しぶりに参加したCodeforces Round #368 (Div. 2) - Codeforcesの C. Pythagorean Triples が面白かったのでご紹介します。 問題 「正の整数aが与えられる。三平方の定理 a2 + b2 = c2 を満たす残りの 正の整数b, cの組を一組答えよ。そのようなb, cの…

重複組合せの復習

例えば「区別のないK個の玉を、区別のあるN人に分配する組み合わせ」のように、区別のないものを区別のあるものに分配する組み合わせを重複組合せと呼びます。 重複組合せは以下の記号で定義されます。 重複組合せは、を使って以下のように表せることが知ら…

Pythonで2変数関数に対してニュートン法を用いる

前回、Pythonで2変数関数に対して最急勾配法を用いる - minus9d's diaryにて、2変数関数に対する最急勾配法を Pythonで実装しました。 今回は、最急勾配法よりも収束が早いと言われるニュートン法を実装してみます。私の理解が正しければ、ニュートン法では…

Pythonで2変数関数に対して最急勾配法を用いる

以前、Pythonで最急勾配法を実装し、グラフを描く - minus9d's diary という記事にて、1変数関数に対して最急勾配法を用いて極値を求める実装を紹介しました。 今回の記事では、2変数関数に対して同じことをやってみます。目的関数はです。紙と鉛筆で極値を…

Pythonで最急勾配法を実装し、グラフを描く

最急勾配法(gradient method)は、ある目的関数の極値を求める方法の一つです。勾配がもっともきつい方向にを少しずつずらしていく方法です。極大値を求める場合は再急上昇法(gradient ascent method)、極小値を求める場合は最急降下法(gradient descent meth…

一変数関数、多変数関数の凸性を求める方法

機械学習の教科書「言語処理のための機械学習入門 (自然言語処理シリーズ) 」を再び読み始めました。勉強したことを忘れないように、メモがてらなにか書いていこうと思います。 今回は関数の凸性、つまりある関数が上に凸か、下に凸か、もしくはそのどちらで…

○○行列のまとめ その2

前回の続き。 随伴行列(adjoint matrix) ある行列Aがあったとき、Aの転置をとり、各要素を複素共役で置き換えた行列を、Aの随伴行列と呼び、と書く。 "共役転置行列"と呼ぶこともあるようだ。 Octaveで随伴行列を得るには、以下の2種類の書き方がある(複素…

○○行列のまとめ その1

線形代数でよく出てくる行列をまとめました。Octaveでのコマンドを使って例を示しています。英訳はWikipediaを参考にしています。 零行列(zero matrix, null matrix) すべての成分が0である行列。例: octave:> a = zeros(3,4) a = 0 0 0 0 0 0 0 0 0 0 0 0 …

自然対数の底eの定義式を自分で導く

自然対数の底eの定義式といえば ですが、極限にとばすのは0だったか無限大だったか、右肩の数字はtだったか1/tだったかなど、よく忘れます。この式を丸暗記する代わりに、この式の導き方自体を覚えるのが良い方法です。 axの微分を定義から計算すると、 とな…

回転行列の積から加法定理が導ける

原点を中心に点を回転する回転行列を2回かけあわせると加法定理が導けることに気付く。シンプルで美しい。(加法定理と回転行列)

行列A+BCDの逆行列を導出する

行列の逆行列は で表される、という公式(A+BDCと書かれることもある)が天下りで出てきて面食らったことはないでしょうか。 この式は‘Matrix Inversion Lemma’(逆行列補題、逆行列の補助定理)とか‘Sherman-Morrison-Woodbury Identity’(Sherman-Morrison(-W…

CourseraのData Analysis and Statistical Inference 最終週

Data Analysis and Statistical Inference | Coursera 最終週の受講メモ。最終週は、おまけとしてベイジアンの話題を扱う。そして最終試験を受けた後、成績が返ってきた。 Video Review - Frequentist vs. Bayesian Inference 例題 M&Mの、黄色の割合を推論…

CourseraのData Analysis and Statistical Inference Week 8

Data Analysis and Statistical Inference | Coursera Week 8の受講メモ。今週はmultiple linear regression(重回帰分析)を扱う。検定以降の節はほとんど理解できていない。 Video Unit 7 Part 1(1) Multiple Predictors 例: 本の重さを、ページ数と、カバ…

CourseraのData Analysis and Statistical Inference Week 7

Data Analysis and Statistical Inference | Coursera Week 7の受講メモ。今週は数値データと数値データとの関連性を扱う。具体的には線形回帰。 Video correlation correlation coefficient 2つのnumerical variableの結合の強さを表す 絶対値が大きいほど…

CourseraのData Analysis and Statistical Inference Week 6

Data Analysis and Statistical Inference | CourseraのWeek 6の受講メモ。今週はカテゴリカルデータに関する検定などもろもろ。目的と、そのための手法がいくつも紹介されて、正直消化不良気味。 今週からMathJaxを使って数式を表示してみた。綺麗に数式が…

CourseraのData Analysis and Statistical Inference Week 5

Data Analysis and Statistical Inference | CourseraのWeek 5の自分用受講メモ。Week 4は中間試験のためなし。 Video paired dataの検定 paired dataの例: 各学生のreadの成績データとwriteの成績データ これらの平均値に差があるかどうか検定するには、各…

Googleで2進数、10進数、16進数の変換を簡単に行う

ちょっとしたテクニック。 2進数に変換 数字の後ろに"in binary"とつける。 16進数に変換 数字の後ろに"in hex"とつける。 10進数に変換 数字の後ろに"in decimal"とつける。

CourseraのData Analysis and Statistical Inference Week 3

Data Analysis and Statistical Inference | CourseraのWeek 3の受講メモ。今週は、母分散が既知の場合の平均値の検定がテーマ。大学の教養で習っているはずの話だが理解が怪しい。講義を受けた後でもやっぱり怪しい。理解不十分なメモをWebにUPするのは害悪…

CourseraのData Analysis and Statistical Inference Week 2

Data Analysis and Statistical Inference | CourseraのWeek 2を引き続き受講。今週は高校でも習うような確率の基本的な話の復習から始まり、正規分布と二項分布を扱った。 Video 確率のイントロ gambler's fallacy disjoint events(背反事象) mutually excl…

CourseraのData Analysis and Statistical Inferenceを受講開始

こないだ受講終了したMachine Learning | Coursera(Gradingは99.9%。もう少しクイズを頑張っていれば満点だったが…)に引き続き、Data Analysis and Statistical Inference | Courseraを受講開始。 Week 1では、Videoによる学習と、Rの練習を行った。 Video…

高校数学のベクトルを復習

高校時代のベクトル、つまり幾何と深く結びついた2次元or3次元のベクトルについて、すっかり忘れていた内容を以下にまとめた。自分用のまとめなので、全然網羅性はない。 内積の定義 内積と成分 余弦定理を使って導く。 中線定理 △ABCの辺BCの中点をMとした…

二項係数に関する公式を感覚的に理解する

高校数学で学ぶ二項係数の公式に以下のものがある。 これは以下のような例で考えると感覚的に分かる。 10冊の漫画本から3冊を選ぶことを考える。選び方は通りある。 3冊の中に漫画の1巻を含める場合と含めない場合とに場合分けしてみる。すると以下のように…

凸関数、凹関数

メモ。 convex function = 凸関数 = 高校数学で言う「下に凸」。例: concave function = 凹関数 = 高校数学で言う「上に凸」。例: なんだかとても覚えにくい。個人的にだが、 凸と凹だと、凸の方がメジャーな感じがする とだと、の方がメジャーな感じがす…

ベクトルで微分

備忘録として、ベクトルで微分することの定義をまとめる。ここでは、分かりやすいようにベクトルはすべて3次元とする。 定義 ベクトルの関数を、ベクトルで(偏?)微分することの定義は以下の通り。 例 よくあるのが をで微分するというもの。ここで、は3x3の…

PCA(Principal Component Analysis)を具体的に計算する

(2013/6/18修正)PCAの計算方法を天下り的に説明します。専門家ではないので誤りが含まれる可能性があることをあらかじめご了承ください。データの例はExample of Principal Component Analysis (PCA).mp4 - YouTubeで使われているものをそのまま流用していま…