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:共生関係

ブログ    
ブログ    
ブログ    

推薦する

「リーフチップ」が小型ロボットに油圧パワーを提供

[[186706]]マサチューセッツ工科大学(MIT)は最近、同校の研究者らが樹木や植物のポンプ機構...

AI に携わる人が Python を選ぶ理由は何でしょうか?

AIとビッグデータの時代に、最初の開発言語となるのは誰でしょうか?これは議論の余地のない質問です。...

...

...

AIアシスタントのユーザーエクスペリエンスは2018年に大幅に低下

人工知能 (AI) 音声アシスタントは近年大きな進歩を遂げ、スマートスピーカーやその他の AI スマ...

清華大学は、2D拡散モデルを使用して不完全な3Dオブジェクトを補完する3D再構築の新しい方法、O²-Reconを提案しました。

コンピューター ビジョンでは、オブジェクト レベルの 3D サーフェス再構築テクノロジは多くの課題に...

...

...

顔認識セキュリティの脆弱性が再び明らかに、19のAndroidスマートフォンは15分でロック解除可能、必要なのはプリンター、A4用紙、メガネフレームだけ

最新の顔認識の脆弱性が明らかになり、テストされたすべての Android スマートフォンが脆弱である...

AI主導のサプライチェーンが業界の変革を加速させる方法

アラブ首長国連邦(UAE)の企業がほぼ全面的にクラウドに移行する前に、政府はすでに大規模なデジタル変...

...

ディープラーニングに基づくターゲット検出ネットワークが誤検出を起こす可能性がある理由と、ターゲット検出の誤検出問題を最適化する方法について説明します。

顔検出などの物体検出用のディープラーニング ネットワークにとって、誤検出は非常に厄介なものです。犬を...

顔認識メイク落としはアリペイを認識できない:馮潔は范冰冰に似せるために整形手術を受けたが、それでも認識できる

「バン」デザインに加えて、指紋認証の代わりに顔認証を使用していることも、iPhone Xの不満点の1...

ライブチャットとチャットボット: どちらの顧客サービス方法が優れているのでしょうか?

[[267030]] [51CTO.com クイック翻訳] ビジネスの世界は大きな変化を遂げてきま...

...