はてなキーワード: 最尤推定とは
http://aiweeklynews.com/archives/49678692.html
・Excelはがっつり使える
・Pythonのnumpyやpandasでデータの処理ができる
例えばですが、pythonを自分のパソコンに環境構築して、「Hello,world!」と表示できるようになったら、面接に申し込んで、「少しはpythonできます」と言ってみるのも一つの方法かもしれません。
実際に見分け方がわからなくてこれに引っかかって採用してしまう場合もあるんだろうな、とも思う。
自分がこの手の人材(エンジニア)を採用する場合にどうやって質問をすれば見極められるのかエンジニアの採用にも関わっている身としてを考えてみた。
AI人材という呼称自体がぞわぞわするけど、一旦そこは我慢する。
まず採用を行う前に、AI人材を取って何をしてもらいたいのかをチームないし採用意思決定者としっかり確認する。
など、あとは案件ベースなのか自社開発なのかそれぞれ必要となる能力がオーバーラップしつつも異なっているため。
バックグラウンドを確認する。実務や研究の経験の話が出てくるのがメジャーだと思うが、エンジニアとしてのバックグラウンドがあれば独学勢でも野良kagglerなどレベルの高い人はいるので実務経験に絞らなくても良いと思う
機械学習全般の基本的なところから確認していく。質問としてはこんな感じだと思う
・過学習ってなんでしょうか
イメージとしては非エンジニア職でも必要になる「この辺りの言葉が通じないと絶対困ったことになる」一般常識を確認する感じ。
画像や映像の認識などディープラーニング系の業務が多い想定の場合
から始まって
・どうやって訓練したのですか?
・どうしてそのような構成にしたのですか?
と突っ込んでいく。
確認したいことはディープラーニング「しか」できない人かではないかという点。
ある程度統計やベイズ法周りの知識が無いと詰むため。逆にディープラーニングが不要な業務ならこっち一本でも可。
・勾配降下法について説明してください
・畳み込みニューラルネットワークについて仕組みを説明してください
盲目的にライブラリを使ってるだけでないかという点を確認したい。
SVMを入力に適用するだけならsklearnで5行書くだけで誰でも出来る。手法の背景や対象データの特性をきちんと考えて使っているかを見たい。
・kaggleのコンペに参加したことはあるか
・メダルの取得状況
kaggleに参加した経験があればnoteからその人の手付きを直接評価できるし、メダルという他メンバからも客観的に評価できる定量指標もある。
学習意欲とか普段の姿勢を確認したい。もしかするとここが一番重要かも。
・普段何を参考に勉強しているか / 論文を読む習慣があるか(最近読んだ論文があれば教えてください)
・今興味のあること
面接会場にて、時折「自分の会社ってすごいんだぞ」って雰囲気をちらつかせる面接官と面接をした。自分も自分に酔ってる部分はあるものの、相手がそれ以上なのでカチンと来た。以下、面接でムカついた部分について書こうと思う。まずは志望動機を聞かれた時より、
面接官:弊社のどのような部分に興味があったのですか?(志望動機)
自分:OA機器の中古販売に興味があって応募しました。(これだけ)
おいおい。こんな所で自分の会社の椅子自慢をしなくても。随分偉そうな奴だ。椅子って10'000円以内の物を使ってるオフィスがあると思うので、こんな根拠の無い自慢をする以前に市場調査(縦軸にオフィス数、横軸に値段をプロットしたヒストグラムを作成)するべきだろう。次に腹が立ったのは、その場での対応力が問われる設問が出された時。制限時間は10分で、問題は以下。
1.日本国内1年間で消費されるトイレットペーパーの長さ(m)を求めよ。
2.日本国内で働いている美容師、理容師の人数(人)を求めよ。
恐らくこの設問。googleなどで良くやる「バスの中にゴルフボールは何個入りますか?」と言うような設問に当たる。その場で理屈を組み立てられるかを聞く問題だ。時間は10分。「数値なんて知るか!」と思ったので、数値の求め方を聞いてる問題と判断。そこで、求め方を簡単に書く事にし、以下に再現を書こうと思う。
1年間で1人あたりが消費するトイレットペーパーの長さ(の平均値)をa(m)、日本の人口の(推計)をb(人)とすると、(求めるトイレットペーパーの長さの推計値)=abで求まる。aに関してはn人(0<=n<=a)から標本調査を行い、その(標本)平均μ、(標本)分散Sを求め、(それらを検定して)正しいと検定された値を採用する。bに関しては最尤推定量b'で代用する。代用したa,bの値から推計値を求め、それを求める長さとする。
文字が多くて申し訳無い。流石にもうちょい分かり易く説明するべきだが、10分でこれをやろうとするときつい。説明するとn人の1年間あたりの使用量a_1,a_2,a_3......,a_nを調査し、その平均E[a_n] = 1/n Σ(1<=k<=n) a_k = (n人の使用量の合計)/(人数)を使って使用量を求めると言うもの。n人の平均値を求める理由としては、1人だけでは誤差やばらつきが生じるので正確な値は推定しにくいからである。nは統計で言う標本数であり、統計的な計算によりnを決定する必要もある。又nが大きければ大きい程、調査にかかるコストも増える点も考慮しないと。この手法、統計的に見て誤差の少ない推計の仕方なのかは分からない。但しbの値が大きくなればなるほど、誤差が大きくなるのは確かだ。ここでb'=1.0*10^9(1億)の場合と、b'=1.1*10^9(1.1億)の場合を考えるとかなり数値がずれるので想像するだけで怖い。
さて「この方法のメリット、デメリットは?」などと話が進んでいくのかな?と思ったのだが、それは違ったようだ。ただその後の面接官の反応で、流石に腹が立ってしまった。
面接官:この問題は、数字で出して欲しかったんだよ。(トイレットペーパーの量から商品開発するための)会議でその場で答えられるかを聞いていて、abと答えるのかい?
自分:(だったら問題に条件をきちんと書けよ)
自分:すみません。やり方を変えます。資料から(上記aの)推計を出します。
面接官:資料が無い場合で、その場で思い浮かんだ値で答えを出すんだよ。日本の人口は?...
自分も融通が効かないが、流石に誤差が幾ら出るか分からない方法は取りたくないものだ。最低限資料を集め、そこから推計を計算したい所だ。そもそもあらかじめ計算しておくべきものなので、会議の為の設問としては不適切だ。さらに「頭で答えを出せ」などと言ってる時点で、データーの取り方次第で結果が変わると言う事を認識していない面接官のように見受けられる。敢えて言おう。データーを舐めるなと。
そもそも面接の進め方に問題があると感じるのは自分だけか?このような設問を面接で行う場合、面接官は2人以上居る事が望ましい。例えばAさんは人文系、Bさんは理数系と言うようにそれぞれ違った属性の人間を面接官に採用する事が必須条件だ。1対1で面接すると、どうしても質問が偏ってしまう。そのため1対複数の面接を行い、多角的に受験者の特性を読む事が必要だと思うからだ。
あと今は解析より数論の時代だよ。
微分積分は残念ながら最尤推定とかするときにちょっと使えるくらいで一般的には十分かもしれない。
http://www.ted.com/talks/arthur_benjamin_s_formula_for_changing_math_education.html
ちょっと齟齬があるようだけど、「線形」というのは確率過程もある意味で含んでるよ。
確率的な世界での「線形」に対応するのは正規分布。あと再生性が成り立つ確率分布を暗に前提にするとか、中心極限定理が成り立つと前提にしちゃうとかだな。
統計的な話では線形モデルを最尤推定でフィッティングしちゃう、みたいなケースだな。
まー隠れマルコフモデルとかを使ったところで、データ観測期間内で遷移行列の構造が変化しない、という前提を置いてるわけで実際は結構無力だと思う。
数量的な分析、あるいは科学的っぽいロジックってのは何となく説得力あるけどね、実際はかなり無力だよってことを念頭に置いてほしいってことかな。
その辺。
の意味が俺はちょっとよく理解できないけど、普通「母数」と言ったときの意味は
「母集団の任意の確率変数が従う分布関数を特徴づけるパラメータ」のこと。
正規分布ならexp(-(x-μ)^2/2σ^2)のμとσのことだし、他の分布なら何か別の量になる。
通常母数は未知だから、母集団から適当な標本を観測して推定することになる。
そのためのテクニックが、最尤推定だったり母数自身に事前確率分布を指定したベイズ推定だったりする。
(ちなみに母数自身の確率分布の母数をハイパーパラメータと言う)
標本の数は多ければ多いほどよくて、分布関数が普通の分布なら、中心極限定理などによって
標本数が多いほど母数の推定精度が向上したりする。
というわけで、母数と標本数は全く別の概念なんだよね…。