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

What's hot (20)

TalkingData AdTracking Fraud Detection Challenge (1st place solution)
TalkingData AdTracking  Fraud Detection Challenge (1st place solution)TalkingData AdTracking  Fraud Detection Challenge (1st place solution)
TalkingData AdTracking Fraud Detection Challenge (1st place solution)
 
第2回Matlantis User Conference_20230421_畠山歓先生
第2回Matlantis User Conference_20230421_畠山歓先生第2回Matlantis User Conference_20230421_畠山歓先生
第2回Matlantis User Conference_20230421_畠山歓先生
 
Facebookの人工知能アルゴリズム「memory networks」について調べてみた
Facebookの人工知能アルゴリズム「memory networks」について調べてみたFacebookの人工知能アルゴリズム「memory networks」について調べてみた
Facebookの人工知能アルゴリズム「memory networks」について調べてみた
 
#FTMA15 第一回 鬼コース 全PDF
#FTMA15 第一回 鬼コース 全PDF#FTMA15 第一回 鬼コース 全PDF
#FTMA15 第一回 鬼コース 全PDF
 
ビジネスの現場のデータ分析における理想と現実
ビジネスの現場のデータ分析における理想と現実ビジネスの現場のデータ分析における理想と現実
ビジネスの現場のデータ分析における理想と現実
 
ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?ChatGPTで面白い物語は作れるのか?
ChatGPTで面白い物語は作れるのか?
 
Matlantisに込められた 技術・思想_高本_Matlantis User Conference
Matlantisに込められた 技術・思想_高本_Matlantis User ConferenceMatlantisに込められた 技術・思想_高本_Matlantis User Conference
Matlantisに込められた 技術・思想_高本_Matlantis User Conference
 
For MANABIYA
For MANABIYAFor MANABIYA
For MANABIYA
 
機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事
 
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライドNLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
NLP2023 緊急パネル:ChatGPTで自然言語処理は終わるのか? 説明スライド
 
人工知能についての基礎知識
人工知能についての基礎知識人工知能についての基礎知識
人工知能についての基礎知識
 
マーケティング・戦略・組織視点のBIGDATA活用について
マーケティング・戦略・組織視点のBIGDATA活用についてマーケティング・戦略・組織視点のBIGDATA活用について
マーケティング・戦略・組織視点のBIGDATA活用について
 
落合流先生流の論文要旨フォーマット
落合流先生流の論文要旨フォーマット落合流先生流の論文要旨フォーマット
落合流先生流の論文要旨フォーマット
 
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
【DL輪読会】The Forward-Forward Algorithm: Some Preliminary
 
Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門Deep Learning Lab 異常検知入門
Deep Learning Lab 異常検知入門
 
機械学習は化学研究の"経験と勘"を合理化できるか?
機械学習は化学研究の"経験と勘"を合理化できるか?機械学習は化学研究の"経験と勘"を合理化できるか?
機械学習は化学研究の"経験と勘"を合理化できるか?
 
強化学習 と ゲーム理論 (MARL)
強化学習 と ゲーム理論 (MARL)強化学習 と ゲーム理論 (MARL)
強化学習 と ゲーム理論 (MARL)
 
さらば!データサイエンティスト
さらば!データサイエンティストさらば!データサイエンティスト
さらば!データサイエンティスト
 
データサイエンティストのつくり方
データサイエンティストのつくり方データサイエンティストのつくり方
データサイエンティストのつくり方
 
ChatGPTでモノづくりを支援してもらった話(移行済)
ChatGPTでモノづくりを支援してもらった話(移行済)ChatGPTでモノづくりを支援してもらった話(移行済)
ChatGPTでモノづくりを支援してもらった話(移行済)
 

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

【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
【技術情報協会】人工知能を使ったR&D業務効率化・生産性向上のシステム作り
Hajime Fujita
 

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

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で 機械学習してみた