UMAP is a new dimensionality reduction technique that offers increased speed and better preservation of global structure.
こんにちは,クラスタリング&可視化おじさんです. 本記事は「機械学習と数学」Advent Calendar14日目です. (ちなみにAdvent Calendar初投稿です.よろしくお願いします) はじめに データ分析とか機械学習やられてる方は高次元データの次元削減と可視化よくやりますよね. この分野の代表選手といえばPCA(主成分分析)とかMDS(多次元尺度構成法)ですが, これらの線形変換系手法には以下の問題があります. 高次元空間上で非線形構造を持っているデータに対しては適切な低次元表現が得られない 「類似するものを近くに配置する」ことよりも「類似しないものを遠くに配置する」ことを優先するようアルゴリズムが働く 1.に関して,よく例に出されるのがSwiss roll dataset(下図)のようなヤツですね. PCAはデータが多次元正規分布に従うことを仮定しているので, その仮定から
データ分析から導き出されたインサイト無しにAI(人工知能)の活用は始まりません。私たちは、各業界知識とデータ・アナリティクス技術を駆使しデータドリブン経営を強力に支援します。 データ、アナリティクス、AIは企業にとって競合他社との差別化を図るかつてないほど大きな要因になっています。今日の経営幹部が効率を向上しながら新たな収益源を開拓し、新しいビジネスモデルをタイムリーに構築する方法を模索する中、価値を生み出し成長を続ける企業には「データ活用」という共通項があります。私たちは、無数のデータから企業にとって本当に必要なデータを活用するための方法を知っています。 将来を見据えたオペレーション体制を備えている企業の半数以上(52%)は、すでにデータとアナリティクスを大規模に活用しています。データとAIに関する取り組みをビジネス戦略に沿って実施することで投資利益率を迅速に最大化し、最終的にはAIをビ
t-SNEは多次元データの可視化手法の一つとして有名な手法です。 本記事では、t-SNEで用いられている考え方のポイントとperplexityの役割を論文を元に簡単に解説します。 かなりの要約ですが、ポイントだけでも知っておくことで、理解を深める一助となることを目指しています。 同じく多次元データの可視化手法であるPCAとは考え方が全く異なるので、違いの理解の参考になれば幸いです。 元論文はこちらです。 http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf 理論ではなくコード例が必要な方は、以下の記事をご参照ください。 https://bunsekikobako.com/t-sne-code-example/ t-SNEのポイント要約 t-SNE (t-distribution Stochastic N
t-SNEは、高次元のデータを可視化する手法としては、非常に便利ですが、時々不可解な挙動をしたり、誤解を招くような可視化をすることがあります。 シンプルなデータを可視化して動作の仕組みを理解することで、t-SNEのより効果的な使い方を学ぶことができます。 t-SNEは、高次元のデータを調査するための手法として、2008年にvan der MaatenとHintonによって発表 [1] された人気の手法です。 この技術は、数百または数千次元のデータですら無理やり2次元の「マップ」に落とし込むという、ほとんど魔法のような能力を備えているために、機械学習の分野で幅広く普及しています。 このような印象を持っている方が多いのですが、こういった捉え方をしていると誤解を招くこともあります。 この記事の目的は、よくある共通の誤解を解くためでもあります。 t-SNEで可視化できることと、できないことを説明す
概要 pandasで大きめのDataFrameに対してapplyすると、いつまで待てば結果が返るのか不安になることがあるのでtqdmで進捗を表示したい。 バージョン情報 Python 3.6.8 tqdm==4.31.1 pandas==0.23.4 サンプルデータ ランダムな数値で1万行のDataFrameを作成しておく。 import numpy as np import pandas as pd # 適当なDataFrameを生成する df = pd.DataFrame(np.random.random([10000, 2]), columns=['a', 'b']) df.head() 実行結果 a b 0 0.748046 0.457551 1 0.657718 0.628164 2 0.395166 0.623360 3 0.610704 0.236926 4 0.576350
SSIMオートエンコーダ(論文より引用) SSIMを適用する窓のサイズは11 x 11 オートエンコーダの入力画像サイズは256 x 256 潜在変数は100 学習データはDataAugmentationにより10,000個に増幅 metric learning 学習データは上記4種類のデータ全てを渡しました。つまり、968個のデータです。 入力画像サイズは224 x 224 今回使うmetric learningはL2 SoftmaxLoss epochは50、最適化手法はSGD バッチサイズは128 ベースモデルはMobileNet V2($\alpha=0.5$)(学習済モデルを使用、つまり転移学習) 異常スコアはLOFで算出 10回試行して、それぞれの試行で再現率と特異度の和が高いものを採用 アンサンブル異常検知 metric learningについて、更なる高精度を目指してアンサ
VGG16のFine-tuningによる犬猫認識 (1) (2017/1/8)のつづき。 前回、予告したように下の3つのニューラルネットワークを動かして犬・猫の2クラス分類の精度を比較したい。 小さな畳み込みニューラルネットをスクラッチから学習する VGG16が抽出した特徴を使って多層パーセプトロンを学習する VGG16をFine-tuningする リポジトリ:dogs_vs_cats 1. 小さな畳み込みニューラルネットをスクラッチから学習する ベースラインとしてVGG16は使わずに小規模な畳み込みニューラルネットワークをスクラッチから学習する。学習データは、犬クラス1000枚、猫クラス1000枚と小規模なデータを使うのであまり大規模なネットワークは学習できない。そこで、畳込みが3層のLeNet相当の小さなモデルを構成した。 横の矢印はそのレイヤでの出力の4Dテンソルのサイズ (samp
前回(2017/1/10)は、VGG16をFine-tuningして犬か猫を分類できる2クラス分類のニューラルネットワークを学習した。今回は、同様のアプローチで17種類の花を分類するニューラルネットワークを学習してみたい。前回の応用編みたいな感じ。この実験はオリジナルなので結果がどう出るかわからなかったけどうまくいったのでまとめてみた。 リポジトリ:17flowers 使用したデータは、VGG16を提案したOxford大学のグループが公開している 17 Category Flower Dataset である。下のような17種類の花の画像データ。とっても美しい。 前に実験した(2017/1/4)ようにデフォルトのVGG16ではひまわりさえ分類できなかったが、VGG16をFine-tuningすることで果たしてこれら17種類の花(ひまわりもある)を分類できるようになるのだろうか?さっそく試して
今回は、Deep Learningの画像応用において代表的なモデルであるVGG16をKerasから使ってみた。この学習済みのVGG16モデルは画像に関するいろいろな面白い実験をする際の基礎になるためKerasで取り扱う方法をちゃんと理解しておきたい。 ソースコード: test_vgg16 VGG16の概要 VGG16*1は2014年のILSVRC(ImageNet Large Scale Visual Recognition Challenge)で提案された畳み込み13層とフル結合3層の計16層から成る畳み込みニューラルネットワーク。層の数が多いだけで一般的な畳み込みニューラルネットと大きな違いはなく、同時期に提案されたGoogLeNetに比べるとシンプルでわかりやすい。ImageNetと呼ばれる大規模な画像データセットを使って訓練したモデルが公開されている。 VGG16の出力層は1000
ではせっかくなのでモデルの中身をみてみましょう.以下のコードでその中身を見ることができます. model.summary() 以下のようなモデルの構造が表示されるかと思います. Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) (None, 224, 224, 3) 0 _________________________________________________________________ block1_conv1 (Conv2D) (None, 224, 224, 64) 1792 ______________________________________________________
こんにちは。sinyです。 ディープラーニングの勉強をちまちまと継続しており、学習済みCNNモデルの再利用方法について勉強しているのですが、 なかなか頭の中で整理ができないので、備忘録の意味も含めて要点をまとめてみました。 同じように勉強している方のお役に立てればうれしいです。 学習済みモデルから特徴抽出を行う方法 学習データ数が少ない場合の効率的な訓練方法として、学習済みモデルを利用する手法があります。 VGG、RestNet、Inceptionなど大量データを使って学習済みの公開されているモデルを再利用することで、短時間で精度の高いモデルを構築していくというアプローチです。 CNNの学習済みモデルには、「畳み込み+プーリング層」(以降、畳み込みベースと記載)と最後に「全結合層」がありますが、全結合層は除外して畳み込みベース部分を使ってデータを処理し特徴を抽出します。 抽出した特徴データ
2019.07.02 転移学習(Transfer learning)の紹介:音声分類版で山での池と滝の音を当ててみました~ こんにちは。次世代システム研究室のK.S.(女性、外国人)です。 最近は桜の季節も終わり、新しく夏の自然や緑に触れたくなりませんでしょうか。常夏の国で生まれた私はいつも日本の季節変化を楽しみにしています。それを言い訳にして、平日の渋谷出勤を離れて、日本の自然を味わうため、大山へ山登りに行ってきました。登っていると、水の音が聞こえてきて、池があるのかなと感じました。音の方に向かって、近くまで行ったら、おっと、池ではなく、滝でした。あらあら、自分の耳はきちんと池と滝を判別できないのかちょっとびっくりしました。そこで、自分の耳の代わりに音を分類するものがあればいいなあと思って、音を分類してみたいと考えました。一応、遊んでばかりではいけないので、ついでに自分が遊べるネタに関係
はじめに Deep Learningを使った距離学習(Metric Learning)は、人物同定(Person Re-Identification)をはじめ、顔認識、細かい画像の分類、および画像検索など多くのコンピュータビジョンタスクにおいて広く利用されています。その中でも損失関数にTriplet Lossを用いたMetiric Learningは比較的ポピュラーなやり方で、関連論文もこれまでたくさん発表されています。本稿では、まず画像分類(Classification)タスクとMetric Learningの違いを考察し、次にTriplet Lossがどのように改良されてきたのか、その変遷をまとめています。 画像分類タスクとしてのPerson Re-Identification Person Re-Identificationとは同一人物を認識するタスクです。これを一般的な画像分類タス
モダンな深層距離学習 (deep metric learning) 手法: SphereFace, CosFace, ArcFaceDeepLearningMetricLearningFaceRecognition はじめに 顔認識 (face recognition) 等の個体識別問題において、距離学習は非常に重要です。ここで個体識別問題というのは、顔認識を例に取ると下記のようなものです。 2つの顔画像ペアが与えられた際にその顔画像ペアが同一人物のものであるかを判定する1:1認証 N人の顔画像データが予め与えられた状態で、個人が特定されていない顔画像が入力された際に、その顔画像がN人のうちどれであるか、またはどれでもないかを判定する1:N認証 何故距離学習が重要かというと、クラス分類問題とは異なりクラス数が不定で各クラスに属する画像を事前に得ることができず1、クラス分類問題として解くこと
欠陥発見! MVTec異常検知データセットへの深層距離学習(Deep Metric Learning)応用画像処理DeepLearning異常検知MetricLearningMVTecAD News 2021/4/30 ㊗この記事の英語版が、論文に引用されました。 …というか、個人的には「この記事のアイデアを拡張して、汎用的なアイデアにした上で論文化してくれた」、と勝手に喜んでいます。 ・引用された論文: "CutPaste: Self-Supervised Learning for Anomaly Detection and Localization", arXiv:2104.04015 [cs.CV], 2020. この「[16]」です。 はじめに Deep metric learningの評価を段階的に試してきました。 Part 1: 分類器で学習できるMetric learning
各組み合わせにつき、上図で表した10テストケースをそれぞれ実施して統計をとっています。 まとめ: 10テストケースでは、正常・以上に割り当てる具体的なクラスを入れ替える。 8つのセットで評価の条件を組み合わせ、各条件で10テストケースすべてを実施した上で統計をとった結果を出している。 1.3 評価方法 ひとつの組み合わせは10テストケース実施それぞれで、①AUC、②各クラスサンプルの平均距離を得た。 ひとつのテストケースの評価手順 通常のCNN分類器(ResNet18)に、手法を組み込む。(Conventionalのときは何もせずそのまま使う) 学習は、「正常」に割り当てたクラスだけで構成する学習データセットを使い、転移学習によって行う。学習データは、各データセットで元々trainセットに入っているサンプルのみ利用する。 評価データの距離を得る。 正常・異常を問わずすべてのクラスから評価デ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く