Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to Sparse Modeling for Software En...
Search
Hacarus Inc.
October 13, 2018
Technology
1
120
Introduction to Sparse Modeling for Software Engineers
Presentation slides at GDG DevFest Philippines 2018
*
https://devfest.gdgph.org/
Hacarus Inc.
October 13, 2018
Tweet
Share
More Decks by Hacarus Inc.
See All by Hacarus Inc.
GitLab CI/CD で C#/WPFアプリケーションのテストとインストーラーのビルド・デプロイを自動化する
hacarus
0
1.3k
QA4AIに則ったMLOpsツールの活用
hacarus
0
710
0から協働ロボット外観検査システムを3ヵ月で具現化した軌跡
hacarus
0
260
ワンちゃんの健康を願う皆様に送る 犬心電図AI解析プロダクト紹介_AWS DevDay2022
hacarus
0
200
犬の心電AI解析プロダクト開発奮闘記 _クラウドからハード開発までてんこ盛り
hacarus
0
1.8k
ExplainableAIの概要とAmazon SageMaker Clarifyでの実装例
hacarus
0
1.1k
AWS Step Functions を用いた非同期学習処理の例
hacarus
0
1.4k
Dashでmyダッシュボードを作ろう ーpytrendsで見るコロナの感染拡大時期ー
hacarus
0
1.5k
Interpretable Machine Learning: モデル非依存な解釈手法の紹介
hacarus
0
1.1k
Other Decks in Technology
See All in Technology
マーケットプレイス版Oracle WebCenter Content For OCI
oracle4engineer
PRO
5
1.6k
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
120
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.8k
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
140
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
230
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
430
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
290
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
240
Red Hat OpenStack Services on OpenShift
tamemiya
0
110
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
310
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
450
How STYLIGHT went responsive
nonsquared
100
6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
Context Engineering - Making Every Token Count
addyosmani
9
660
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Mobile First: as difficult as doing things right
swwweet
225
10k
Believing is Seeing
oripsolob
1
55
Transcript
,8 0 0 2 1 , 1 0 2 00
3 0 0 3 88 0
5BLBTIJ4PNFEB !ULTNE • $50BU)BDBSVT *OD • .BTUFS`TEFHSFFPG*OGPSNBUJPO4DJFODFBU ,ZPUP6OJWFSTJUZ • )PTUTEBUBTDJFOUJTUDPNNVOJUZJO,"/4"*
• IUUQTNMNLBOTBJDPOOQBTTDPN
"CPVU)BDBSVT • 5BDLMFNFEJDBM JOEVTUSJBMJTTVFTCZ"* • 'PDVTPO4QBSTF.PEFMJOH • 4VQQPSUFECZQSPGFTTPST • .S.BTBZVLJ0I[FLJ
GSPN5PIPLV6OJWFSTJUZ • .S,BPSV,BXBNPUPGSPN4IJHB6OJWFSTJUZ
"MJUUMFNPSFBCPVUVT
5BLFBXBZT • (FUCBTJDDPODFQUPG4QBSTF.PEFMJOH • ,OPXBDUVBMJNQMFNFOUBUJPOJO1ZUIPO • )PQFZPVHFUJOUFSFTUFEJOJU
8IBU`T4QBSTF.PEFMJOH
4QBSTF.PEFMJOH • .PEFMJOHBQQSPBDIUPVTFTQBSTJUZ • "DUJWFEJTDVTTJPOTTUBSUFEBU • *NBHFBOBMZTJTJTXFMMLOPXOBQQMJDBUJPO
$PNNPO.-JTTVFTJOCVTJOFTT • /FFEUPFYQMBJO IPXXIZ"*HJWFTSFTVMU • /FFE NPOFZBOEPSUJNF UPDPMMFDUEBUB • /FFE
JOJUJBMDPTUGPS(16IBSEXBSF IUUQTIBDBSVTDPNJOGPSNBUJPOUFDITQBSTFNPEFMJOHGPSJUFOHJOFFST
&YQMBJOBCMFWT1SFEJDUBCMF • /PTJMWFSCVMMFUT USBEFPGGFYJTUT • 'BJMXJUIPVUUIJOLJOHCVTJOFTTSFRVJSFNFOUT • 69PG"*TZTUFNCFDPNFTJNQPSUBOU
"EWBOUBHFPG4QBSTF.PEFMJOH • 4FMFDUJNQPSUBOUGFBUVSFTGSPNJOQVU • 8PSLXJUI FWFO TNBMMBNPVOUPGEBUB • 3VOPOMJNJUFEIBSEXBSFSFTPVSDF
*OUSPEVDUJPOPG-BTTP
-JOFBSSFHSFTTJPO • 1SPCMFNEFTDSJQUJPO • 0VUQVUZ DBOCFFYQSFTTFEBTMJOFBSDPNCJOBUJPOPGY XJUIPCTFSWBUJPOOPJTFЏ • XIFSFY JTN
EJNFOTJPOBMBOETBNQMFTJ[FPGZ JTO ! = #$ %$ + ⋯ + #( %( + ) 㱺 &TUJNBUFX XIJDIFYQSFTTFT ZXFMM
-JOFBSSFHSFTTJPO • #BTJDBQQSPBDI • .JOJNJ[FMFBTUTRVBSFFSSPSTPGZ BOENVMUJQMJFSTPG Y BOEFTUJNBUFEX min 1
2 & − () * 㱺 XIBUJGXFEPO`UIBWFFOPVHITBNQMFTPGZ ʁ
6OEFSEFUFSNJOFE4ZTUFN .BUSJY&YQSFTTJPO 8IFOTBNQMFTJ[F . JTMFTTUIBO JOQVUEJNFOTJPOPG9 / Z8Y DBOOPUCFTPMWFE "EEJOHTQBSTJUZDPOTUSBJOU
*GOVNCFSPGOPO[FSPWBMVFPGY , JTMFTTUIBO. 8FDBOTPMWF UIJTQSPCMFN W W
-OPSNPQUJNJ[BUJPO • 6TFNJOJNVNOVNCFSPGY UPTBUJTGZ FRVBUJPO • 'JOEX UPNJOJNJ[FOVNCFSPGOPO[FSP FMFNFOUT •
$PNCJOBUJPOBMPQUJNJ[BUJPO • /1IBSEBOEOPUGFBTJCMFL
-OPSNPQUJNJ[BUJPO • 3FMBY-DPOTUSBJOUUP • 'JOEX UPNJOJNJ[FTVNPGJUTBCTPMVUFWBMVFT • (MPCBMTPMVUJPODBO TUJMM CFSFBDIFE
• 4PMWFEXJUIJOQSBDUJDBMUJNF
&Y7JTVBMFYQSFTTJPO -OPSN !" + !$ = &
• -FBTU"CTPMVUF4ISJOLBHFBOE4FMFDUJPO0QFSBUPS • 0CKFDUJWFGVODUJPOXJUI-OPSNBTSFHVMBSJ[BUJPO UFSN -BTTP min 1 2 &
− () * + , ( - 㱺 3FHVMBSJ[BUJPOQBSBNFUFS Е DPOUSPMT TQBSTJUZ
7BSJPVT"MHPSJUINTGPS-BTTP • $PPSEJOBUF%FTDFOU • -FBTU"OHMF3FHSFTTJPO • *45" • "%..
&Yɿ$PPSEJOBUF%FTDFOU *OJUJBMJ[F !" # = 1, … , (
XJUISBOEPNWBMVF 6QEBUF ) !" = * + , -. , / , 0 8IFSF 1(") = 4 − ∑ 78" 9 7 !7 BOES JTTPGUUISFTIPMEJOH GVODUJPO 3FQFBUVOUJMDPOWFSHJOHDPOEJUJPOTBUJTGJFE
4PGU5ISFTIPMEJOH0QFSBUPS • 4ISJOLHJWFOWBMVFYCBTFEPO! S #, ! = & # −
!, (# ≥ !) 0, (−! < # < !) # + !, (# ≤ −!)
1ZUIPODPEFFYBNQMF # Soft thresholding operator def soft_threshold(X, thresh): return np.where(np.abs(X)
<= thresh, 0, X - thresh * np.sign(X)) # Coordinate descent w_cd = np.zeros(n_features) for _ in range(n_iter): for j in range(n_features): w_cd[j] = 0.0 r_j = y - np.dot(X, w_cd) w_cd[j] = soft_threshold(np.dot(X[:, j], r_j) / n_samples, alpha)
3FTVMU EJNFOTJPOBMJOQVUXJUI OPO[FSPDPFGGJDJFOUTBOETBNQMFT
1BUIEJBHSBN • 7JTVBMFYQSFTTJPOPGIPX! BGGFDUTUIF OVNCFSPGOPO[FSPDPFGGJDJFOUT
0UIFSJNQMFNFOUBUJPOT • TDJLJUMFBSO • $PPEJOBUF %FTDFOUJTEFGBVMU -BTTP • -"34JTBMTPBWBJMBCMF -BTTP-BST
• TQNJNBHF • "%..JTBWBJMBCMF -BTTP"%..
TQNJNBHF • 1ZUIPOMJCSBSZGPSTQBSTFNPEFMJOH • "MHPSJUINTGPS*NBHFBOBMZTJT • $PNQMJBOUUPTDJLJUMFBSOJOUFSGBDF • IUUQTHJUIVCDPNIBDBSVTTQNJNBHF
&Y-BTTPBOE-BTTP"%.. # Lasso from scikit-learn from sklearn.linear_model import Lasso model
= Lasso(alpha=0.1) model.fit(X_train, Y_train) model.score(X_test, y_test) # Lasso from spm-image from spmimage.linear_model import LassoADMM model = LassoADMM(alpha=0.1) model.fit(X_train, Y_train) model.score(X_test, y_test)
*NBHFBOBMZTJT
%JDUJPOBSZMFBSOJOH :*NBHF "%JDUJPOBSZ ! "# $# 9DPFGGJDJFOU • &YUSBDUQBUDIFTGSPNJNBHFT •
-FBSOEJDUJPOBSZ UPFYQSFTTFWFSZQBUDIFT • &WFSZQBUDIFTTIPVMECFTQBSTF DPNCJOBUJPOPG CBTJT 4QBSTF$PEJOH
&Y*NBHFSFDPOTUSVDUJPO 0SJHJOBMJNBHF 3FDPOTUSVDUFEJNBHF
&Y*NBHFSFDPOTUSVDUJPO -FBSOFEEJDUJPOBSZ Y CBTJT 4QBSTF$PEJOH HSFFOJT[FSP
1ZUIPODPEFFYBNQMF # extract patches patches = extract_simple_patches_2d(img, patch_size) # normalize
patches patches = patches.reshape(patches.shape[0], -1).astype(np.float64) intercept = np.mean(patches, axis=0) patches -= intercept patches /= np.std(patches, axis=0) # dictionary learning model = MiniBatchDictionaryLearning(n_components=n_basis, alpha=1, n_iter=n_iter, n_jobs=1) model.fit(patches) # reconstruction reconstructed_patches = np.dot(code, model.components_) reconstructed_patches = reconstructed_patches.reshape(len(patches), *patch_size) reconstructed = reconstruct_from_simple_patches_2d(reconstructed_patches, img.shape)
*OQBJOUJOH 'PSNJTTJOHWBMVFT XFDPOTJEFSNBTLNBUSJY.BOE VTFJUXJUIVTVBMJNBHFSFDPOTUSVDUJPOCZEJDUJPOBSZ
4VNNBSZ
4QBSTFNPEFMJOH • "EWBOUBHFT • 4FMFDUJNQPSUBOUGFBUVSFTGSPNJOQVU • 8PSLXJUI FWFO TNBMMBNPVOUPGEBUB •
3VOPOMJNJUFEIBSEXBSFSFTPVSDF • :PVDBOTUBSUJUUPEBZJ • 1ZUIPOJNQMFNFOUBUJPOJTBWBJMBCMFJOTDJLJU MFBSOBOETQNJNBHF
! 8F`SFIJSJOH ! IUUQTXXXLBMJCSSDPNDIBDBSVTJODKPCT