16歳の高校生が13,000行以上のコードでC++機械学習ライブラリをゼロから作成した

16歳の高校生が13,000行以上のコードでC++機械学習ライブラリをゼロから作成した

コンピューターが大好きなティーンエイジャーは、16歳にしてすでに、広東語プログラミング言語の開発、Kaggleチャンピオンシップでの優勝、ゲームの執筆、暗号通貨投資ロボットの開発、C++機械学習ライブラリのゼロからの構築など、何かを創造することができます。

今日は、C++ 機械学習ライブラリをゼロから構築した 16 歳の少年 (@novak-99) を紹介したいと思います。彼の自己紹介の投稿は、reddit で何百ものいいねを獲得しました。

彼が構築したライブラリ (ML++) には 13,000 行を超えるコードが含まれており、統計、線形代数、数値解析、機械学習、ディープラーニングなどのトピックをカバーしています。

プロジェクトアドレス: https://github.com/novak-99/MLPP

@novak-99 は、C++ が自分の選択言語であったためこのライブラリを構築したと述べていますが、ML フロントエンドに関しては、C++ はほとんど使用されていません。

C++ は効率的で、高速実行に適しています。そのため、ほとんどのライブラリ (TensorFlow、PyTorch、Numpy など) は、最適化と速度のために C/C++ または C/C++ 派生言語を使用します。

しかし、さまざまな機械学習アルゴリズムのフロントエンド実装を調べてみると、そのほとんどが Python、MatLab、R、または Octave で実装されていることに気付きました。彼は、C++ が ML フロントエンドであまり使用されない理由は、主にユーザー サポートの不足と C++ の複雑な構文にあると考えています。

Python と比較すると、C++ の機械学習フレームワークは非常に少ないです。さらに、PyTorch や TensorFlow などの一般的なフレームワークでも、C++ 実装は Python 実装ほど完全ではなく、ドキュメントが不足している、すべての主要関数が存在しない、貢献する意思のある人があまりいないなどの問題があります。

さらに、C++ は Python の ML スイートのさまざまな主要ライブラリをサポートしていません。 Pandas も Matplotlib も C++ をサポートしていません。これにより、データの視覚化とデータ分析の要素を取得するのが難しくなるため、ML アルゴリズムの実装時間が長くなります。

そこで彼は、C++ 機械学習ライブラリを自分で作成することにしました。

また、ML アルゴリズムは実装が非常に簡単なため、一部のエンジニアは実装とその背後にある数学的な詳細を見落とす可能性があるとも指摘しました。数学的な詳細を理解しなければ、特定のユースケースに合わせて ML アルゴリズムをカスタマイズすることは不可能であるため、これは問題になる可能性があります。そこで彼は、ライブラリに加えて、統計、線形回帰、ヤコビ行列、バックプロパゲーションなど、ライブラリ内の各機械学習アルゴリズムの背後にある数学的背景を説明する包括的なドキュメントもリリースする予定です。ここにいくつかの統計があります:

プロジェクトを開くと、いくつかの詳細が表示されます。

19の主要なトピックを網羅したこのML++は、十分に大規模で包括的です。

ほとんどのフレームワークと同様に、高校生が作成した ML++ ライブラリは動的であり、常に変化しています。これは、毎日新しいアルゴリズムや技術が開発されている機械学習の世界では特に重要です。

現在、ML++ ライブラリでは次のモデルとテクニックが開発されています。

  • 畳み込みニューラルネットワーク (CNN)
  • サポートベクターマシン (SVM) カーネル
  • サポートベクター回帰

全体として、ML++ ライブラリには、次の 19 の主要トピックと関連するサブコンテンツが含まれています。

  • 回帰(線形回帰、ロジスティック回帰、ソフトマックス回帰、指数回帰、プロビット回帰、クロッグログ回帰、Tanh 回帰)
  • ディープでダイナミックかつスケーラブルなニューラル ネットワーク (活性化関数、最適化アルゴリズム、損失関数、正則化手法、重み初期化手法、学習率プランナー)
  • 構築済みのニューラル ネットワーク (多層パーセプトロン、オートエンコーダ、ソフトマックス ネットワーク)
  • 生成モデリング(表形式の生成的敵対ネットワーク)
  • 自然言語処理(Word2Vec、ステミング、bag-of-words、TFIDF、補助テキスト処理関数)
  • コンピューター ビジョン (畳み込み演算、最大/最小/平均プーリング、グローバル最大/最小/平均プーリング、事前構築された特徴ベクトル)
  • 主成分分析
  • ナイーブベイズ分類器(多項式ナイーブベイズ、ベルヌーイナイーブベイズ、ガウスナイーブベイズ)
  • サポートベクター分類(プライマルフォーメーション、デュアルフォーメーション)
  • K平均法アルゴリズム
  • K近傍アルゴリズム
  • 外れ値ファインダー(標準スコアを使用)
  • 行列分解(SVD分解、コレスキー分解、QR分解)
  • 数値解析(数値微分、ヤコビベクトル計算機、ヘッセ行列計算機、関数近似器、微分方程式ソルバー)
  • 数学的変換(離散コサイン変換)
  • 線形代数モジュール
  • 統計モジュール
  • データ処理モジュール (特徴スケーリング、平均正規化、ワンホット表現、逆ワンホット表現、サポートされている色空間変換タイプ)
  • ユーティリティ (TP/FP/TN/FN 関数、精度、再現率、正確度、F1 スコア)

詳細については、元のプロジェクトを参照してください。

ネットユーザー:とても暑いですが、どうしたらいいですか?

16歳でこのような傑出した作品が生み出されるという事実に対して、一部のネットユーザーはため息をつくばかりだ。この世の高校生は一体何をしているんだ?!私が彼らと同じ年齢だった頃は、まだ「指を噛んでいた」。そして彼らは ICLR や NeurIPS カンファレンスで論文を発表しています...

ネットユーザーの中には、高校生がこんなことをしているのなら、数年後の博士課程への出願競争がどれほど熾烈になるか想像できる、との声もある。今後、チューリング賞を受賞するには、3 件以上の NeurIPS 論文を発表するだけで済みます。

冗談のように思われるかもしれないが、現時点ではある程度「転がっている」とも言える。

しかし、一部のネットユーザーは、プロジェクトには13,000行のコードがあるのにテストがないと指摘しています。別のネットユーザーは、これは個人的な趣味に基づいて作成されたペットプロジェクトであり、実際の使用例には適していないと考えています。したがって、ここではテストは重要ではありません。

参考リンク:

https://www.reddit.com/r/MachineLearning/comments/srbvnc/p_c_machine_learning_library_built_from_scratch/

<<:  誰かが匿名ソフトウェアで私の学校を爆破したいと言っていたので、私はすぐに先生と警察に通報しました。xdm、私は正しいことをしたのでしょうか?

>>:  AIとIoT:共生関係

ブログ    

推薦する

...

2024年にワイヤレス技術が接続性、効率性、消費者体験をどのように向上させるか

2024 年には、ワイヤレス テクノロジーに多くの改善がもたらされ、接続性、効率性、消費者体験が向上...

2年半の訓練を経て、テスラのヒューマノイドロボット「オプティマス2」がオンラインになった。

何の前触れもなく、テスラのヒューマノイドロボット「オプティマス」の第2世代が登場しました。 12月1...

海外で最も人気のあるディープラーニング実践コースの新バージョンがリリースされました。100%新しい最先端のコンテンツを備えています。

良いニュースです。お勧めの新しいコースがあります!理論と実践を組み合わせた完全無料の海外で最も人気の...

...

「ブラックスワン」の翼の下で:情報戦場におけるAIの光と影

[51CTO.comからのオリジナル記事] 突然の流行に直面して、国民は情報の適時性、透明性、伝達効...

自動運転について話しましょう

自動運転とは何ですか?自動運転とは、さまざまなセンサー、コンピュータービジョン、人工知能、機械学習な...

「3D ガウス」バージョンですべてをセグメント化: ミリ秒単位で 3D セグメンテーション、1,000 倍高速

今年4月、Metaは「Segment Everything(SAM)」AIモデルをリリースしました。...

Langchain、ChromaDB、GPT 3.5 に基づく検索強化型生成

翻訳者|朱 仙中レビュー | Chonglou概要:このブログでは、検索拡張生成と呼ばれるプロンプト...

商業ビルのエネルギー効率における人工知能の役割

人工知能は商業ビルを変革し、エネルギー使用に関してよりスマートなものにしています。周囲に誰もいないと...

Googleは、携帯電話で0.2秒で画像を生成できる超高速拡散モデルMobileDiffusionを開発、現在最速

Stable Diffusionなどの大規模なAIモデルを携帯電話などのモバイルデバイスで実行するこ...

...

...