コンピューターサイエンスを使った最適化&自動化専門の会社
文章翻訳など、NLP界を騒がせたTransformer(トランスフォーマー)の技術解説をします。話題となったGPT-3やBERTでは本技術が多分に影響されています。今回はソースコードの実装メインで技術解説を行います。
決定木を使った ランダムフォレスト のアルゴリズムを解説します。決定木ですので、中身がブラックボックスにならない点や確率で求まる事から非常に人気のアルゴリズムです。決定木をpythonでの実装し、乱数の森で画像の男女判定を実現するプログラム例を載せています。
Sequence to Sequence( Seq2Seq )のアルゴリズム解説をします。Seq2Seqはグーグルにより2014年に開発された技術で、翻訳、自動字幕、スピーチ認識などで大幅な向上があった技術です。VAEやGANと同様に、本技術も近年の機械学習分野では非常に重要な技術の一つとなっています。
画像処理界を話題にさせたVAEの技術について記載します。今回は数式ベースの説明になりますので結構高度かもしれませんが、じっくり読んでいけば確実にわかります。VAEではエンコーダー、デコーダーを噛ませて元の画像を学習していくオートエンコーダーです。GANとVAEは機械学習で必修の技術です。
最小二乗法を用いた重回帰分析の方法を説明します。具体的には(X^T X)^-1 X yを解くことで重みベクトル群が求まるのですが、実際にnumpyを使って導出までの流れを説明します。導出までの流れについては他サイトに多く書かれているので、ここではプログラムメインで説明します。
GANのアルゴリズムをPythonによるPyTorch実装例を交えて解説します。GANは画像処理で大活躍した技術で、2つのニューラルネットワークで構成されています。近代で最も面白いと言われた学習アルゴリズムの一つです。近年様々なGANが開発されています。是非GANの概念を掴んで自分で実装&実験してみてください。
正準相関分析とは回帰分析の一般系といわれます。正準相関分析(CCA)では重回帰分析と違いy=axでいうyの部分を相関が最大になるような係数aを求めて行く作業です。CCAの仕組みを詳細に書くと数式だらけになり難しくなるため、概念と簡単なソースコードで説明します。
数量化理論4類のMDSを紹介します。あるアイテムがどれだけ似ているか、あるいは似ていないかを可視化する技術です。M1グランプリの採点を使えば芸人の似ている似ていない、あるいは採点者の似ているなどの傾向を見ることが出来ます。距離行列を定義した後に最後は固有値分解により求めます。
頻出パターンマイニングの手法について紹介します。頻出パターンマイニングはおむつとビールという関連性を見出した手法として有名です。FPマイニングではApriori、そしてFP-growthがアルゴリズムとして有名ですが今回はAprioriアルゴリズムを解説します。
Googleのサーチエンジン、ページランクの仕組み(アルゴリズム)を解説します。SEOは現代のWEBマーケティングで最も重要な事ですがページランク向上にむけ、その理解は非常に重要です。ページランクの仕組みが解れば、他のプログラムのアイディアにもきっと役立つはずです。
線形判別分析(LDA)の説明をします。フィッシャーの線形判別分析法とも呼ばれます。LDAは簡単に言えばグループ分けアルゴリズムです。LDAは統計の知識である分散、平均、線形代数であるPCA、共分散行列や空間の概念など含んでいるため、統計や機械学習を学びたい初学者にとっては最適なアルゴリズムだと思います。
機械学習と似ているようで似ていない強化学習のアルゴリズムを解説します。GoogleのAIが囲碁の世界チャンピオンに勝ったというNEWSはとても驚きました。まさに強化学習が使われていたのですが、そのベースとなったQ学習というアルゴリズムについて解説します。