Web Machine Learningについて

W3Cが推進しているWeb Machine Learning (WebML)という取り組みについて少し調べてみました。今回は解説記事というわけではなく個人用のメモに近いので正確性についてはあまり自信がありませんが。。 Web Machine Learning (WebML)とは Web Machine Learning | Making Machine Learning a first-class web citizen W3C Web Machine Learning Working Grou…

ONNX Runtime for Webで画像認識

前回はONNX Runtime for Web (ORT Web)をVue.jsアプリケーションで使ってみました。 ONNX Runtime for WebをVue.js+WebGL環境で試す 公式チュートリアルは単純な行列計算でしたので、今回はもう少し実践的に自前のモデルを使った画像認識を試してみたいと思います。 環境 前回の環境とほぼ同じですが、実装言語はTypeScriptに変更しました。数値計算系の部分は型があるとデバッグしやすいので。 Vue.js: 3.2.11 ONNX Runti…

Cloudflare Workersでサーバレス開発 part3 Workers KVを無料で使う

引き続きCloudflare Workersの話。今月、ありがたいことにCloudflare Workers KVのFree Tierが拡大されたようです。 Workers KV – free to try, with increased limits! 今までは動作確認程度しか使えませんでしたが、無料枠が拡大されたことによりコンテンツキャッシュとして使えそうかなという感じです。AWSでいうところのLambda + DynamoDBの組み合わせをCloudflareの無料枠でも実現で…

Cloudflare Workersでサーバレス開発

今回は日頃からいくつものサイト配信で大変お世話になっているCloudflare社が提供するCloudflare Workersを試してみました。 普段はあまりここでサービス紹介系の記事は書かないのですが、いくつかのドメインを運用している都合上、コンテンツ生成に必要なアプリケーションサーバの用意が最近少しずつ大変になってきたので、今回紹介するCloudflare Workersの活用で開発リソース削減を検討するための備忘録として記事にしています。 Cloudflare Workers Cloudf…

JavaScriptで機械学習の実装 6 t-SNEによる次元削減

ここ数ヶ月はネットワーク周りのネタ書いてたせいかあんまり頭を使ってなかった気がするので、このGW期間中は久しぶりに理論寄りのコードをけっこう書きました。今回はその一例を挙げます。 今回はt-SNE(t-Distributed Stochastic Neighbor Embedding: t分布型確率的近傍埋め込み法)による高次元データの次元削減および可視化を試してみました。t-SNEはちょっと前に流行って、今では幅広い分野で実用されている次元削減(次元圧縮)手法の一つです。古くは主成分分析(PC…

JavaScriptで機械学習の実装 5 Gradient Boosting

少し間が空いてしまいましたけど、今回はGradient Boosting (勾配ブースティング)と呼ばれる機械学習アルゴリズムを試してみます。機械学習関連のコンペでも大人気の手法ですね。かなり昔(2011年)に決定木をJavaScriptで実装したことはあるので勾配ブースティングも併せて学んでおこうと思います。 JavaScriptで決定木 Gradient Boosting (勾配ブースティング) ブースティングについてWikipediaを引用すると、 ブースティング(英: Boosting)…

JavaScriptでLSDによる高精度な直線検出

ここ半年くらいは機械学習関連技術のJavaScript実装を行ってきましたが、今回は久しぶりに画像処理関連の要素技術を調べました。 Line Segment Detector (LSD) と呼ばれるアルゴリズムになります。 LSD: a Line Segment Detector (元論文PDF) 画像: 東京ガーデンテラス紀尾井町 – Tokyo Garden Terrace Kioicho LSDによりデジタル画像中から高精度に直線(line segmentなので厳密には線分)を…