Hacker News のホットな話題: 利用できるパッケージが非常に多いにもかかわらず、プログラマーは依然としてアルゴリズムを学ぶ必要があるのでしょうか?

Hacker News のホットな話題: 利用できるパッケージが非常に多いにもかかわらず、プログラマーは依然としてアルゴリズムを学ぶ必要があるのでしょうか?

さまざまなアルゴリズムの実装やソフトウェア パッケージがオープン ソースで利用できる世界において、アルゴリズムはプログラマーにとって依然として重要ですか?

[[333416]]

数十年前にプログラマーだった人は、アルゴリズムに精通していて、自分でアルゴリズムを書く必要があったことが多かったはずです。しかし今日では、アルゴリズムは「商品」となり、実践者は既製のソフトウェア パッケージや購入したアルゴリズムを使用しています。 「機械学習には数学は必要ない。多くのアルゴリズムがパッケージ化されており、パッケージを調整するだけでよい」という見解を主張する人もいます。

本当に時代は変わったのでしょうか?最近、関連トピックに関する記事が Hacker News の Web サイトで議論を巻き起こしました。

記事の主な内容は次のとおりです。

私が最初にソフトウェア開発を始めた頃は、開発者は使用するアルゴリズムのほとんどを自分で実装する必要がありました。ハードウェア ベンダーはいくつかのライブラリを提供していましたが、当時の開発環境は全体的に、独自のアルゴリズム (より技術的で複雑な数学関数を除く) を作成するというものでした。

ほとんどの開発者は、Donald Knuth 著の「The Art of Computer Programming」を読むでしょう。この本は、アルゴリズムを段階的に実装するための非常に信頼できる読み物リソースです。また、ライブラリのコピーに、アルゴリズムの更新内容が非常に小さな文字で手書きされ、前のページのテキストの上に貼り付けられているのを見たのを覚えています。

当時は、コンピューターが一般的な問題を許容できる速度で解決できるほど高速ではなかったため、アルゴリズムが非常に重要でした。一般的な命令の実行時間と命令時間、および特定の CPU で使用可能なレジスタの数は、開発者がよく議論するトピックです。メモリ容量は通常キロバイト単位で報告され、すべてのバイトが重要です。

それはアルゴリズムの時代でした。

メモリ容量がメガバイトからギガバイトに移行するにつれて、オープンソースの商用アルゴリズムとコンピューターのストレージ速度は劇的に向上しました。

今日の開発者は、アルゴリズムの実装に関して幅広い選択肢を持っています。解決すべき問題が他にもたくさんあるのに、なぜアルゴリズムの実装に時間を無駄にするのでしょうか?

現在、アルゴリズムは橋のボルトのようなもので、非常に重要であるにもかかわらず無視されています。今日の開発者は、ストーリーポイント、機能、ビジネス ロジックなどについて議論することを好みます。問題が明確に定義されている場合、多くの開発者は、コードをゼロから作成するのではなく、既存のパッケージを探すことを好むようになりました。

新しいアルゴリズムは現在も開発中であり、研究者は既存のアルゴリズムを継続的に改良しています。しかし、これは比較的ニッチなものです。

一部の企業のアルゴリズムは商品ではありません。 Google の規模では、一見非常に小さな改善でも、会社は数百万ドルを節約できます (膨大な数のほんの一部でも、かなりの額であるため)。一部の企業にとって、アルゴリズム開発はコア競争力の一部である可能性があります。アルゴリズムの非コモディティ性は、そのような企業に競争上の優位性を与えますが、非コア競争力の中では、アルゴリズムはコモディティと見なされます。

ドナルド・クヌースの『The Art of Computer Programming』は、アルゴリズムを一般に公開する上で重要な役割を果たしました。この本はよく引用されるが、今では読む人はほとんどいないのではないかと思う。

数年前、私が読んでいたソフトウェア エンジニアリングの本にアルゴリズムに関する専用の章がないことに突然気づきました。

今日、私たちはソフトウェア開発エコシステムの時代にあります。

このアルゴリズムはまだ完全に忘れ去られてはいません。人々がコンピューターに必要なことを伝えるだけでよくなり、実装の詳細を気にする必要がなくなるまで(または遺伝的アルゴリズムのプログラミングがより良く開発されるまで)、このアルゴリズムは完全には忘れ去られないでしょう。

開発者はどう思いますか?

「アルゴリズムは依然として重要ですか?」この疑問は長い間存在し、開発者の間でさまざまな態度で議論されてきました。

将来、コンピューターが音声からコードへの変換を通じてアルゴリズムをコンパイルできるようになったとしても、プログラマーの仕事はコンピューターに実装するアルゴリズムを読み取ることになるかもしれません。

アルゴリズムをまったく書かない開発者の割合は高くなっていますが、アルゴリズムを書く開発者の絶対数は 1980 年代より増えています。しかし、「アルゴリズムの時代」があるとすれば、それは今だと思います。今日では、かつてないほど多くのアルゴリズムが存在します。

アルゴリズム業界が経験している変化を説明するために、アルゴリズムを写真に例えた人がいました。

今の時代、私たちの想像にぴったり合う絵を数分以内に見つけることができます。そのため、商業的な観点からは、純粋な芸術としての写真の価値は失われてしまいました。しかし、なぜ人々はいまだに写真家を雇うのでしょうか?

写真家は「最高の画像を提供する」ために報酬を受け取るのではなく、クライアントが望む写真の主題と効果をカスタマイズするために報酬を受け取ります。これはソフトウェア業界の現状でもあると思います。私たちはアルゴリズムの「芸術レベル」の頂点を目指しているのではなく、特定のビジネスやニーズに合わせてカスタマイズされたソリューションを提供しようとしています。これはマクロレベルのイノベーションではなく、ミクロレベルのイノベーションです。

時代は変わりました。つまり、プログラマーも目標を調整する必要があるということです。 「多くの人にとって、純粋で、一般的で、美しいものを書くことの方が魅力的でしょう。残念ながら、Google がオープンソース化したパッケージと同じくらい優れたものを書く機会は私たちにはないかもしれません。」

最も適切なアルゴリズムを自分で書くかどうかは自分の選択だと言う人もいますが、最終的な実装結果に影響しないのであれば、なぜそのような単純で低レベルの作業に時間を無駄にするのでしょうか?

また、次のように考える人もいます。カプセル化パッケージは、低レベルで面倒な作業から解放してくれるが、実際の作業では、開発者自身が実装する必要があるカプセル化されていないアルゴリズムが常に存在するため、アルゴリズムをいくつか記述する必要がある。

アルゴリズムのスキルは決して時代遅れになることはありません。実際、いくつかの高品質なアルゴリズム実装が広く利用可能になったことで、そのようなアルゴリズムを手作業で実装する必要がなくなるかもしれません。しかし、開発者はデータ構造でサポートされている操作だけでなく、その複雑さも理解する必要があります。この方法でのみ、アプリケーション自体の複雑さの要件を満たすことができます。

「なぜそうなるのか、なぜそうなるのかを知る」というのは、今日でも良いアドバイスでしょうか?便利に利用できるラッパーによってアルゴリズムが時代遅れになるでしょうか?これは検討する価値があります。

<<:  ML プロジェクトを実行するときに、タスクが多数あり、些細な場合はどうすればよいでしょうか?このセルフチェックリストはあなたの心を整理するのに役立ちます

>>:  機械学習におけるアルゴリズムとモデルの違い

ブログ    

推薦する

歴史上3大AI失敗事例を徹底解説

[51CTO.com クイック翻訳] 今日言及された事故のほとんどはAI自体と直接関係はありませんが...

...

人工知能 + ブロックチェーンの開発動向と応用研究レポート(受賞リスト付き)

[51CTO.com からのオリジナル記事] AI とブロックチェーンは現在、2 つの人気の技術方...

製造バリューチェーンにおいて RPA に真のチャンスはあるのでしょうか?

[[421304]]製造業における自動化の推進力は非常に単純です。自動化は人間の作業をシミュレート...

清華大学張北院士:融合乗算による第三世代人工知能の三空間融合モデルの解釈

人工知能は今どの段階に達しているのでしょうか?どのような問題や限界があるのか​​?どのように突破する...

張亜琴:業界にとって、ディープラーニングの黄金時代は始まったばかりだ

本日、張亜琴教授はCNCC 2020で「スマートテクノロジーのトレンド」をテーマに講演しました。デジ...

マイクロソフトCEOナデラ氏:世界は人工知能に関して幅広い合意を形成しつつある

マイクロソフトのCEOサティア・ナデラ氏は1月17日(現地時間)の火曜日、人工知能に関して世界中でコ...

マスク氏はマイクロソフトの論文をOpenAIを訴える根拠として利用した。「あなたたちはすでにAGIを認めている」

おそらく、これを敢えて実行できるのはマスク氏だけだろう。 Microsoft の論文を証拠として使っ...

...

ガートナー:今後2年間で、テクノロジープロバイダーの3分の1がAIに100万ドル以上を投資する

9月30日、ガートナーの最近の調査によると、人工知能技術計画を持つテクノロジーおよびサービスプロバイ...

人工知能はより安全で環境に優しい交通システムの構築に役立つ

人工知能は、運輸業界が直面している多くの複雑な課題を解決するための最適なテクノロジーとなっています。...

前進を続けましょう: TensorFlow 2.4 の新機能を見てみましょう。

TensorFlow 2.4 が利用可能になりました!このリリースには、新しい機能、パフォーマンス...

人工知能がコロナウイルスを終わらせる

人工知能と新型コロナウイルスには共通点がないように思えますが、本質的には同じものです。 [[4391...

新しい研究では、AIを使用してトラウマ性解離を引き起こす脳領域を探索する

[[344125]]解離や解離性障害は、特に幼少期に極度のトラウマや慢性的な虐待を経験した人々によっ...

考えてみてください。連合学習は大規模な言語モデルをトレーニングできるのでしょうか?

1. 概要大規模言語モデル (LLM) の急速な発展に伴い、LLM が人工知能業界の発展に与える影...