ファニーボーン

プログラムなどについて書いていこうと思います。

パーセプトロンの実装

概要

先日、「タコス DE 機械学習」と名打った、機械学習初学者向けの勉強会で発表する機会がありました。 勉強会の主旨は、機械学習の基本的な分類器であるパーセプトロンを好きな言語で実装しながら、タコスを食べようという、楽しげな勉強会でございました。 かくゆう私も、機械学習を学習し始めたばかり。発表内容は、Pythonでの開発環境の説明とアイリスデータを用いたパーセプトロンの実装例の紹介です。本記事では、その発表をまとめます。 connpass.com

パーセプトロンとは

勉強会でも発表された、こちらの資料が分かりやすいので是非お読みください。

www.slideshare.net

Pythonでの実装について

勉強会では、Pythonに限らず、ScalaJavaRuby等さまざまな言語で参加者はパーセプトロンを実装しました。 私はPythonでの実装に関して発表しました。 方々で語られていますが、以下の点で機械学習の初学者にとってPythonはオススメです。

  • ライブラリが豊富
  • リファレンスが豊富
  • Jupyter Notebookがイケてる

この辺のこと発表した資料です。

タコスで機械学習 Python編

で、こちら実装例。

https://github.com/yamatsuka-hiroto/ml/blob/master/perceptron_iris.ipynb

簡易のため、アイリスデータのsetosaとversicolorの額の長さ、幅をもとに分類してます。

まとめ

今回は、Pythonでの開発環境、パーセプトロンの実装を発表しました。

余談

普段、Golangを使っているので、Golangで同様のことをするにはどうするかを検討しました。

gonum/matrix

PythonにはNumPyなど、便利な行列演算ライブラリがあります。本当便利。 Golangにはないかなあと思っていたのですが、相当するものがありました。 基本的な行列演算はできそう。

GitHub - gonum/matrix: Matrix packages for the Go language.

gonum/plot

Pythonのmatplotlibに相当するのものです。

GitHub - gonum/plot: A repository for plotting and visualizing data Example plots · gonum/plot Wiki · GitHub

Jupyter Notebook

Jupyter Notebook自体は40以上の言語で使え、もちろんGolangの使用できます。 github.com

インストールして使ってみたのですが、 グラフ表示がNotebook内できなかったりで、ちょっと微妙でしたね。。