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

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

茅面映画の李明輝氏:興行収入予測における機械学習の実用化

[51CTO.comより引用] 近年、わが国の興行収入市場は飛躍的に成長し、2011年には150億ド...

元従業員が内部事情を暴露: 10年経っても、なぜGoogleはナレッジグラフを解明できないのか?

[[258183]]この記事はWeChatの公開アカウント「AI Front」(ID: ai-fr...

ディープラーニング、NLP、コンピュータービジョンのための 30 の優れた Python ライブラリ

[[357895]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

RC4 攻撃: RC4 暗号化アルゴリズムは SSL/TLS を保護できますか?

RC4 暗号化アルゴリズムで最近発見された問題について説明していただけますか? HTTPS 接続の...

研究者:AIモデルの「推論」はより多くの電力を消費し、業界の電力消費は2027年に「オランダに匹敵する」ようになる

今週10月13日、Cellの姉妹誌Jouleは「人工知能の増大するエネルギーフットプリント」と題する...

AI を活用したハイパーオートメーションがビジネス効率を向上させる方法

AI とハイパーオートメーションに期待するのには十分な理由があります。AI には、人間の思考や関連す...

...

...

[ディープラーニングシリーズ] PaddlePaddle データ前処理

前回の記事では、畳み込みニューラルネットワークの基礎知識についてお話ししました。本来、この記事では、...

...

自動車業界における人工知能の5つの主要な応用

[51CTO.com からのオリジナル記事] 自動車業界における人工知能の応用を考えるとき、最初に思...

自動運転車のソフトウェアアップグレードに関する技術管理と規制戦略の分析

スマート車両ネットワーキング、インテリジェンス、アーキテクチャ技術の発展に伴い、自動車ではファームウ...

...