SlideShare a Scribd company logo
1 of 30
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

What's hot

AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方Shinagawa Seitaro
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者cvpaper. challenge
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてSho Takase
 
JTubeSpeech: 音声認識と話者照合のために YouTube から構築される日本語音声コーパス
JTubeSpeech:  音声認識と話者照合のために YouTube から構築される日本語音声コーパスJTubeSpeech:  音声認識と話者照合のために YouTube から構築される日本語音声コーパス
JTubeSpeech: 音声認識と話者照合のために YouTube から構築される日本語音声コーパスShinnosuke Takamichi
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門ryosuke-kojima
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会正志 坪坂
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤株式会社MonotaRO Tech Team
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE広樹 本間
 
NLPにおける再現性
NLPにおける再現性NLPにおける再現性
NLPにおける再現性JunSuzuki21
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門joisino
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争Yosuke Shinya
 
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...joisino
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential EquationsDeep Learning JP
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networkstm1966
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic DatasetsDeep Learning JP
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化Deep Learning JP
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法Hirokatsu Kataoka
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みyuichi takeda
 

What's hot (20)

HiPPO/S4解説
HiPPO/S4解説HiPPO/S4解説
HiPPO/S4解説
 
AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方AHC-Lab M1勉強会 論文の読み方・書き方
AHC-Lab M1勉強会 論文の読み方・書き方
 
【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者【メタサーベイ】Vision and Language のトップ研究室/研究者
【メタサーベイ】Vision and Language のトップ研究室/研究者
 
Transformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法についてTransformerを多層にする際の勾配消失問題と解決法について
Transformerを多層にする際の勾配消失問題と解決法について
 
JTubeSpeech: 音声認識と話者照合のために YouTube から構築される日本語音声コーパス
JTubeSpeech:  音声認識と話者照合のために YouTube から構築される日本語音声コーパスJTubeSpeech:  音声認識と話者照合のために YouTube から構築される日本語音声コーパス
JTubeSpeech: 音声認識と話者照合のために YouTube から構築される日本語音声コーパス
 
グラフニューラルネットワーク入門
グラフニューラルネットワーク入門グラフニューラルネットワーク入門
グラフニューラルネットワーク入門
 
Deeplearning輪読会
Deeplearning輪読会Deeplearning輪読会
Deeplearning輪読会
 
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤datatech-jp Casual Talks#3  データエンジニアを採用するための試行錯誤
datatech-jp Casual Talks#3 データエンジニアを採用するための試行錯誤
 
2019年度チュートリアルBPE
2019年度チュートリアルBPE2019年度チュートリアルBPE
2019年度チュートリアルBPE
 
NLPにおける再現性
NLPにおける再現性NLPにおける再現性
NLPにおける再現性
 
最適輸送入門
最適輸送入門最適輸送入門
最適輸送入門
 
ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争ディープラーニングのフレームワークと特許戦争
ディープラーニングのフレームワークと特許戦争
 
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
Private Recommender Systems: How Can Users Build Their Own Fair Recommender S...
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
 
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
[DL輪読会]Grokking: Generalization Beyond Overfitting on Small Algorithmic Datasets
 
[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化[DL Hacks]Visdomを使ったデータ可視化
[DL Hacks]Visdomを使ったデータ可視化
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
フーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組みフーリエ変換と画像圧縮の仕組み
フーリエ変換と画像圧縮の仕組み
 

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

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

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

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

More from Yu(u)ki IWABUCHI

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

More from Yu(u)ki IWABUCHI (16)

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

Mathematicaで 機械学習してみた