Mathematicaで
機械学習してみた
全脳アーキテクチャ若手の会
第12回勉強会 カジュアルトーク
社会人支部 岩淵 勇樹
自己紹介
岩淵 勇樹(物智、butchi_y)
 2012年3月 博士(工学)
◦ 主に離散数学、音楽情報に従事
 2012年4月〜 面白法人カヤック
(Webエンジニア)
自己紹介
岩淵 勇樹(物智、butchi_y)
 フラクタル好き
 数学好き、だけど統計は苦手
 Mathematica愛好者
(「Mathematica Advent Calendar 2015」を作るなど貢献)
Mathematicaとは?
 数式処理システム
 研究者向けの一方、教育にも注力
 製品としては高価(万単位)だが
Raspberry Piには無償で同梱
Mathematicaでできること
 グラフィカルなデータ解析
(変数を微調整しながらプロット等)
 様々なフォーマットでのデータ入出力
 Webとの通信
 デバイス連携(Raspberry Pi等)
Mathematicaの機械学習用関
数
 Classify
 Predict
: 分類器をつくる関数
: 分類ではなく具体値を推測
出典: http://library.wolfram.com/infocenter/Conferences/9280/
つくってみた
 PCに内蔵のフォント文字を学習させ、
未知のフォントの文字を認識する
プログラム
 Classifyで分類をしてみるテスト
 (動機: 大量の教師ありデータを準備するのが楽)
概略
1. ASCII文字一覧取得
2. Macの内蔵フォント一覧をWeb上の
資料からスクレイピング
3. 文字それぞれをキーにしたレンダリ
ング文字画像を連想配列化
4. その連想配列を元にClassify
5. 内蔵でないフォントでの認識率の表
をプロット
ASCII文字一覧取得
 asciiLi = FromCharacterCode /@ Range[32, 126]
フォント一覧取得
 スクレイピングしたXMLデータは
Mathematica独自の関数形式に変換さ
れる
※フォント一覧データはあきら☆M氏のサイトから借用
フォント一覧取得
 スクレイピングによるフォント名抽出
(XMLパターンマッチと正規表現等)
 506フォントが抽出される
(有効なフォントはもっと少ない)
レンダリング文字画像取得
 Mac RetinaだからかRasterize関数実行に
やたら時間がかかる
分類器を作る
Association[ Table[alphabet ->
getGrapicLi[alphabet], {alphabet,
asciiLi}]]
recognize=Classify[assoc]
← 学習に必要な記述はこれだけ
分類メソッドはオプションで選べる
(例: Classify[assoc, Method -> “NeuralNetwork”] )
"LogisticRegression” 特徴の線形結合からの確率を使って分類する
"Markov" 特徴文字列のMarkovモデルを使って分類する
"NaiveBayes" 特徴の確率的独立を仮定して分類する
"NearestNeighbors" 最近傍の例を使って分類する
"NeuralNetwork" 人口の神経回路網を使って分類する
"RandomForest” BreimanおよびCutlerの決定木の集合を使って分類する
"SupportVectorMachine" サポートベクトルマシンを使って分類する
認識してみる
先ほど作ったrecognize関数(分類器)
ちゃんと認識されている
テキストを画像化するために作った関数
フォント名
未知のフォントに適用してみる
未知のフォントに適用してみる
認識表
 デフォルトのメソッド
(NearestNeighbors)ではまずまず
Methodで比較
 ニューラルネットワークが一番よさげ
(処理内容は解らないけれど)
ニューラルネットワーク最近傍 SVM
手書き風フォントでテスト
 怨霊フォントだとさすがにつらい
いったんまとめ
 Mathematicaで機械学習は可能
 統計などの知識がなくても関数一発で
分類器を作れる
 分類方法も自動で選ばれるほか、明示
的な指定も可能
その他できること
Mathematicaを使って
重要な疑問
 で、Mathematicaでディープラーニン
グできるの?
→そんな便利な関数ないです
実はWolfram社自体、そんなディープ
ラーニング押ししてない
でも、関数は充実しているので、
うまく実装さえすれば…
統計
 FindDistribution
 FindFormula
ビッグデータ
 SocialMediaData (Facebook, Twitterなど)
コンピュータビジョン
 ImageCorrespondingPoints
 EdgeDetect
組み込み済分類器
 TextRecognize
 ImageIdentify
 FindFaces
Image Identification Project
 https://www.imageidentify.com/
Webへの展開
 APIFunction
◦ Wolfram言語プログラムのAPI化
 CloudDeploy
◦ APIのデプロイ
◦ wolframcloud.com配下の
ランダムURLで即公開
 CreateDatabin
◦ データベース
Wolfram|Alpha
 https://www.wolframalpha.com/
まとめ
 Mathematicaでの機械学習は超簡単
 ディープラーニングは頑張り必要
 知識データベースとしての土壌は充分

More Related Content

PDF
ルーティングチュートリアルチュートリアル TCP/IP編
PDF
Rescale で Singularity を使ってみよう!
PDF
どうして昔の人は八進数でしゃべるのか?
PDF
暗号文のままで計算しよう - 準同型暗号入門 -
PDF
FPGA+SoC+Linux実践勉強会資料
PDF
Hybrid Public Key Encryption (HPKE)
PDF
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PDF
ロードバランスへの長い道
ルーティングチュートリアルチュートリアル TCP/IP編
Rescale で Singularity を使ってみよう!
どうして昔の人は八進数でしゃべるのか?
暗号文のままで計算しよう - 準同型暗号入門 -
FPGA+SoC+Linux実践勉強会資料
Hybrid Public Key Encryption (HPKE)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
ロードバランスへの長い道

What's hot (20)

PDF
実践イカパケット解析
PDF
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
PDF
Topology Managerについて / Kubernetes Meetup Tokyo 50
PDF
ビジネス向けIBネットワークを考える ~HPCクラスタでの経験を踏まえて~
PDF
古典プログラマ向け量子プログラミング入門 [フル版]
PDF
不揮発メモリ(NVDIMM)とLinuxの対応動向について
PDF
実践イカパケット解析α
PDF
何となく勉強した気分になれるパーサ入門
PDF
組み込みLinuxでのGolangのススメ(Go con版)
PDF
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
PDF
ラズパイでデバイスドライバを作ってみた。
PDF
犬でもわかる公開鍵暗号
PDF
Singularityで分散深層学習
PDF
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
PDF
Aynchronous Processing in Kamailio Configuration File
PPTX
Staring into the eBPF Abyss
PDF
普通の人でもわかる Paxos
PDF
DPDKによる高速コンテナネットワーキング
PDF
GPU仮想化最前線 - KVMGTとvirtio-gpu -
KEY
避けては通れないバイナリ地獄 - NDEFってなんだろう -
実践イカパケット解析
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
Topology Managerについて / Kubernetes Meetup Tokyo 50
ビジネス向けIBネットワークを考える ~HPCクラスタでの経験を踏まえて~
古典プログラマ向け量子プログラミング入門 [フル版]
不揮発メモリ(NVDIMM)とLinuxの対応動向について
実践イカパケット解析α
何となく勉強した気分になれるパーサ入門
組み込みLinuxでのGolangのススメ(Go con版)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ラズパイでデバイスドライバを作ってみた。
犬でもわかる公開鍵暗号
Singularityで分散深層学習
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
Aynchronous Processing in Kamailio Configuration File
Staring into the eBPF Abyss
普通の人でもわかる Paxos
DPDKによる高速コンテナネットワーキング
GPU仮想化最前線 - KVMGTとvirtio-gpu -
避けては通れないバイナリ地獄 - NDEFってなんだろう -
Ad

Similar to Mathematicaで 機械学習してみた (9)

PDF
非参照テスト用ブラウザと数値ランダム化問題を利用した数学科目の授業デザイン
PDF
Data-Centric AI開発における データ生成の取り組み
PDF
Maker Faire Tokyo 2015
PDF
Data-centricなML開発
PDF
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
PDF
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
PDF
強化学習の汎用化Ai
PPTX
なるべく楽して展示ブースの人数の監視システムを作ろうとした話
ODP
Osc2012tksplt
非参照テスト用ブラウザと数値ランダム化問題を利用した数学科目の授業デザイン
Data-Centric AI開発における データ生成の取り組み
Maker Faire Tokyo 2015
Data-centricなML開発
Tableau x Einstein 連 携 に 関 す る 勝 手 な 考 察
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
強化学習の汎用化Ai
なるべく楽して展示ブースの人数の監視システムを作ろうとした話
Osc2012tksplt
Ad

More from Yu(u)ki IWABUCHI (16)

PPTX
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
PPTX
明日機械学習に役立つかもしれない数学
PDF
IFSを使ったフラクタルの描画
PPTX
フラクタル音楽 〜可視化と可聴化の世界〜
PPTX
ラスタとベクタ
PPTX
ワイソフ配列について
PPTX
名のあるフラクタルたち
PPTX
自己紹介とパズル紹介
PPTX
かんたんベジェ曲線
PPTX
加法よりも低レベルな演算を考える
PPTX
グラフィックエンジニア必見!イージングの数学
PDF
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
PPTX
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
PDF
コンピュータで全く使われない数表現
PPTX
いただきます。
PPTX
フラクタル概説
音楽にまつわる数学 〜「倍音」で理解する和音と音色〜
明日機械学習に役立つかもしれない数学
IFSを使ったフラクタルの描画
フラクタル音楽 〜可視化と可聴化の世界〜
ラスタとベクタ
ワイソフ配列について
名のあるフラクタルたち
自己紹介とパズル紹介
かんたんベジェ曲線
加法よりも低レベルな演算を考える
グラフィックエンジニア必見!イージングの数学
サイエンスアゴラ研究100連発 〜目に見えて楽しい数学〜
Bad Apple Curve!! 〜フーリエ記述子でアニメーション作ってみた〜
コンピュータで全く使われない数表現
いただきます。
フラクタル概説

Mathematicaで 機械学習してみた