ツイート289最近とても注目を浴びている「機械学習」「アルゴリズム」を学ぶべく、「CodeIQ数学ゼミ」を開講しました。池澤あやか機械学習のための数学ゼミ開講!今なにかと話題の機械学習。これを期に機械学習をはじめてみようかなと思っている方も多いのではないでしょうか。実際に機械学習をはじめてみると、数字や数式、グラフのオンパレードに目眩を起こしそうになります。数学が苦手な方にとってはなかなかハードルが高いのが現状です。すごく面白そうな分野なので、このまま指をくわえてみているだけというのも寂しいですよね。MAGAGINEでは「機械学習のための数学ゼミ」を開催することになりました。数学が苦手な皆さま、これを期に復習したいと思っている皆さま、一緒に勉強していきましょう!▲「CodeIQ数学ゼミ」問題の挑戦者の中から、厳正な審査を経てゼミに参加してくれた皆さん。増井雄一郎さんも普通に応募してくれました(笑)。<登場人物>池澤あやかタレントときどきエンジニア。トレタのえらいエンジニア。社会人のための数学教室「すうがくぶんか」の講師。「皆さんはエンジニアなので、数学もプログラムに起こしてみると、もしかしたら理解が早いかもしれませんね。数学でよく使うΣをプログラムで書いてみましょう。するとこんな感じになります。「例えばこれをプログラムに直すと、以下のようになります。機械学習に必要な数学の知識とは「機械学習のために、数学をやり直すとはいえ、さすがに全部勉強し直していたらキリがありません。「そんなお二人のために、この数学講座では数学をプログラムを交えながら教えていければと思います。「機械学習とは、事前に学習しておいたデータをもとに、新しく来たデータがどこに分類されるかや、どんなデータが次に来る可能性が高いかを予測するというものです。データを集めたり整理する時に統計、予測する時に確率を使います。確率分布は、出来事が起こる可能性を全て書くこと!「それでは、まずは確率分布について学んでいきましょう。はじめにどんな出来事が起こりうるかを考えます。それぞれの出来事がどれぐらいの割合で起こるか数字で表します。その数のことをP(◯◯)と表します。何の細工もない普通のコインなら、表と裏が同じ割合で出てほしいですよね。これを数式ではP(コインを投げて表が出る)=1/2、P(コインを投げて裏が出る)=1/2と表記します。長ったらしいので、ここではP(表)=1/2、P(裏)=1/2と書くことにしましょう。この式が言っているのは『コインを投げて表が出る確率は1/2で、裏が出る確率も1/2です』ということです。「ちょっと確率分布がどういうものか感じをつかむために、プログラミングで実験してみましょう。好きな確率分布を設定して、その結果を表示させることができます。以下のプログラムは、1~6までの数字が設定された確率で出るものです。.1])こうすると100回一気に出してくれます。どの出来事がどれぐらいの割合で起こるのか重み付けをするのが確率分布ということですね。二項分布はコイン投げのことである!「それではもっとも基本的で重要な確率分布である二項分布について確認していきましょう。二項分布というのは、例えばコイン投げを10回やって表の出る回数の確率分布のことです。何をやってるのか理解するために実験してみましょう。「同時にコンピュータでもシミュレーションしてみましょう。0]「コインを4回投げて表の出る回数は0回、1回、2回、3回、4回の可能性がありますよね。確率分布としてはP(表が0)、P(表が1)、P(表が2)、P(表が3)、P(表が4)がそれぞれどんな数になるかを決めればいいわけですね。一度実行すると違う結果が出てきます。「というのはN個のものからi個を選ぶ選び方の総数を表します。これは実際にはを計算することになります。1ってなるやつですよね。!は階乗って読むんですよね。「ピーかっこエックスイコールけーはエヌシーアイかけるニブンノイチのケー乗かけるニブンノイチのエヌひくケー乗、ですかね。表と裏がそれぞれ1/2の確率で出るコインを4回投げるとします。この場合の表の出る回数の確率分布を計算してください。pbar_plot(p)「この理論的な結果を元に100回実験すると、表が0回出るのは6.25回、1回出るのは25回、2回出るのは37.5回、表が3回出るのは25回、4回出るのは6.25回、となりそうということです。ところが上で実験した結果とは必ずしも一致しませんよね。「この公式では表が出る確率も裏が出る確率もどちらも1/2になっていますが、出る確率が表が1/4で裏が3/4だったらそれに置き換えればいいってことですね。さっきのコードだと、head_p=0.25かな。二項分布がコイン投げなら、多項分布はサイコロ投げ!「続いては、多項分布についてです。二項分布は結果が2通り起こる出来事を繰り返した時の確率分布だったのに対して、多項分布はサイコロ投げのようにより多くの結果を持つものを繰り返した時の確率分布です。「サイコロ投げた時の結果っぽいですね。そのすべての回数のパターンごとにそれが起こる確率を並べたものが、多項分布です。▲二項分布とは違い、多項分布はとにかくパターンが多いので、確率分布をグラフにするのはちょっと難しそう「それぞれのサイコロの目の出方が何通りかを求めるには、異なるN個を全て並べたパターン数からパターンが重複している分を割ればよいです。「確率分布を求める場合はこれに確率をかけます。サイコロの目のでやすさの確率です。「ではこれを踏まえて、実際に確率分布を求めてみましょう。サイコロを5回投げて出る目の回数の確率分布を求めてください。確率分布は確率を列挙したものです。次回もまだまだ続きます。続いては機械学習でかなり大切な概念になってくるベイズの定理を解説します。2まつもとゆきひろ氏がSpeeeで語った、勉強会・英語・プログラミングの話3永江一石さんが語った、WebメディアにおけるSEOと著作権、その利活用例とは?4GMOペパボの新技術「Haconiwa」、新アーキテクチャ「FastContainerアーキテクチャ」とは?5綺麗なコードと汚いコード。#Elixir6本日の調理実習は「スパゲッティコード」です。RSSCodeIQとはCodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。Tech総研ページ上部へリクルートグループサイトへCodeIQとはCodeIQ(コードアイキュー)とは、自分の実力を知りたいITエンジニア向けの、実務スキル評価サービスです。Co.,Ltd.リクルートグループサイトへ。