ビッグデータとアルゴリズムについて言えば、これらを知っておくことはあなたにとって大きな利益となるでしょう

ビッグデータとアルゴリズムについて言えば、これらを知っておくことはあなたにとって大きな利益となるでしょう

この記事では、ビッグデータ アルゴリズムを理解するプロセスをまとめます。本文は、アルゴリズムに関する私自身の認知プロセスとビッグデータ アルゴリズムに関する私の理解という 2 つの部分から構成されています。

このブログを書く理由はたくさんありますが、一般的には次のようになります。

  • アルゴリズムについては混乱していましたが、少し手がかりが得られたので記録を残しておきます。
  • 考えを明確に整理し、アルゴリズム学習のための 1 ~ 2 年の計画を立てます。これは単なる導入です。

アルゴリズムというと、誰もが古典的なアルゴリズムと機械アルゴリズムしか思い浮かびません。さらに、興味深いアルゴリズム、特に大量のデータ問題を解決するためのアルゴリズムがたくさんあります。これらは見落とされがちですが、これらはビッグデータアルゴリズムと見なされていると思います。

[[209097]]

0x01 認知プロセス

1. アルゴリズムは役に立たない

入社当初は、ビッグデータエンジニアはHadoopをインストールしてMRプログラムを書いて、クラスターを運用・保守するだけでいいと思っていました。アルゴリズムがとても重要なのですが、業務の中では何も感じませんでした。

長い間、私はアルゴリズムは面接で人を区別するのに役立つ単なる知識であると信じていました。 (考えてみると、この見方は間違っていません。ほとんどの開発作業では、自分で書いたアルゴリズムは必要ありません。)

2. 古典的なアルゴリズムの魅力

しばらくビッグデータ運用に携わった後、スケジューリングシステムを最適化するというタスクを受け取りました。経験豊富なGimと協力して、スケジューリングシステムを再構築する計画を設計しました。その過程で、グラフ理論に関する多くの知識ポイントを復習しました。それ以来、アルゴリズムに非常に興味を持ち、止められなくなりました。その後、ツリー関連のコンテンツを再学習し、2-3ツリー、AVLツリー、赤黒ツリーなどのデータ構造を自分で実装しました。

実際、私が興味を持った主な理由の 1 つは、これらのものが基本的にコンピュータ システム全体を構築しているという発見です。たとえば、ファイルシステムやデータベースのインデックスなどです。これらを学べば、将来仕事を失うことはないと感じます。

3. 機械学習がすべて

その後、機械学習が一気に普及し、世の中に残ったアルゴリズムは機械学習アルゴリズムと非機械学習アルゴリズムの2種類だけになりました。私の周りのデータ開発関係の友人や同級生は皆、機械学習に転向したいと言っています。筆者も例外ではなく、このトレンドに追随する準備を始めている。しかし、私には使い道がなく、あまり興味もありませんでした。ある日、機械学習の勉強に疲れたら、息抜きにLinuxをいじりたい、とふと思いつきました。そこで、機械学習への転向を一旦諦めました。将来的には、おそらくかなり広範囲にそれを使用するつもりですが、今のところは全面的に頼るつもりはありません。

機械学習に続いて、2017 年にはディープラーニングの波が到来しました。

4. ディープラーニングは新たな波

私が最も感動したのは、2017 年 5 月に人工知能プラットフォーム アーキテクトの募集要項を見たことです。具体的な要件は、データ プラットフォームの要件に加えて、ディープラーニング プラットフォームの要件がいくつかありました。

このとき、波が来たときに、その波に背を向けるのではなく、受け入れるという選択をすることができると感じるでしょう。そこで、深く多くのことを学び、基本的な理解を得て、今後何をする必要があるのか​​を大まかに知ることができました。 (半年後には、ほとんどすべて忘れてしまいました)

5. 興味深いアルゴリズムがたくさんある

作業が進むにつれて、システムは多くのパフォーマンスボトルネックに遭遇しました。機密情報の暗号化、クラスター ファイルの圧縮、負荷分散戦略の選択など、一連の調整を行って対処する必要がありました。このとき、暗号化アルゴリズム、圧縮アルゴリズム、負荷分散アルゴリズムの原理を詳細に研究する必要がありました。

これらのアルゴリズムはこれまでも存在していましたが、今日のビッグデータ シナリオでも依然として大きな役割を果たすことができます。

6. 分散アルゴリズム

これまで、私は自分が行っている仕事に少し罪悪感を感じていました。MR の作成とクラスターの管理以外には、技術的な内容が深いものは何もないように感じていました。私が誇れるのは、各システムのアーキテクチャとそれらに対する私の知識だけでした。 その後、偶然 Mooc でクラウド コンピューティングの原理に関するコースを発見し、この分野に非常に興味を持つようになりました。

学んでいくうちに、この分野は非常に複雑であることがわかりました。私たちは、多くのコンテンツを含むこれらの分散アルゴリズムと呼んでいます。

  • 2PC や Gossip のようなプロトコルは数多くあり、DHT、Paxo、Raft のようなアルゴリズムや、いくつかの複雑な原則も数多くあります。

まだ勉強を始めたばかりなので、詳しい学習計画は後ほど立てる予定です。

7. ビッグデータ アルゴリズムとは具体的に何ですか?

私は仕事や勉強の中で非常に多くのアルゴリズムに遭遇してきましたが、しばらく考えた後、ビッグデータのアルゴリズムはどのようなものか疑問に思いました。

古典的なアルゴリズムは別として、圧縮アルゴリズムと暗号化アルゴリズムは常に存在してきました。

では、機械学習はどうでしょうか。私はいつも何かがおかしいと感じています。機械学習はビッグデータを使用しますが、ビッグデータでさまざまな問題を解決することを目的としているわけではありません。実際のビッグデータの問題を解決するには、依然としてビッグデータアルゴリズムが必要です。

分散アルゴリズムは、完全に分散アルゴリズムとして考えられているわけではありません。ビッグデータ エンジニアは皆、分散システムを使用していますが、解決する問題のシナリオは多少異なります。分散アルゴリズムでは、クロックや一貫性などの問題を解決する必要があります。ビッグデータ シナリオのアルゴリズムは多少異なります。

それでは、ビッグデータのシナリオにおける問題点は何かを考える必要があります。

ビッグデータシナリオの問題点

最も顕著な特徴はデータ量が多いことであり、このデータの処理が大きな問題になるという問題をもたらします。 Hadoop は画期的なプロジェクトであり、それを超えて解決すべきシナリオがいくつかあります。

ユニーク ビジター (UV) 統計などのコレクション内の個別要素の数は、SQL では count(distinct user_id) として記述されます。ここに 1,000 億のデータ ポイントがあると仮定すると、それらを非常に高速に計算する必要があり、多少の不正確さは許容されます。どうすればよいでしょうか。

つまり、多くのシナリオでは、ある程度の精度を犠牲にして結果を素早く計算することになります。これらのアルゴリズムには幅広い応用シナリオがあります。たとえば、Redis は Hyperloglog を使用してカーディナリティ統計を実行します。

このアルゴリズムのグループは、ビッグデータ アルゴリズムの一部であると思います。コンテンツは豊富で、Bitmap、Roaring Bitmap、Hyperloglog など、特にこのことについて語る特別なブログもあります。

0x02 アルゴリズムスキルの概要

ここで簡単にまとめ、ビッグデータ エンジニアが習得し、精通し、理解する必要があると思われるアルゴリズムをいくつか示します。実際、それらの多くは仕事で頻繁に遭遇します。

学習の優先順位は?

これらのアルゴリズムを学ぶ優先順位をどのように決めるべきでしょうか? この点については冷静に考えるつもりはありません。私自身もかなり混乱しています。どれがより重要かは一概には言えません。しかし、本当に学びたいのであれば、参考資料はいくつかあります。

基本的なデータ構造とアルゴリズムについては、特に説明する必要がありません。これらは、習得すべき基本的なスキルです。

暗号化、圧縮、スケジューリングなどの他のアルゴリズムについては、詳細に学習する必要がなければ、急いで学習する必要はありません。使用するときに理解するだけで十分です。

エンジニアリング志向の学生は、分散アルゴリズムとビッグデータアルゴリズムをできるだけ早く学ぶことをお勧めします。仕事でプログラムを書くときに使用しなくても問題ありません。早めに学んでおいても害はありません。これらのアルゴリズムは、多くのビッグデータ コンポーネントの中核をなしています。

データマイニング関連のアルゴリズムは、データマイニングに従事する人にとっては絶対に学ぶべきものです。データ開発からデータマイニングに転向する人は、明確なキャリアチェンジの計画があれば、深く学び始めることができます。様子見の状態であれば、まずは自分の仕事に関連性の高いアルゴリズムをいくつか触ってみて、プロジェクトの機会があればすぐに始めることができます。

0XFF 要約

プログラムを書くときにアルゴリズムを書く必要はまったくないのではないかと思うこともありますが、アルゴリズム的思考が私に大きな利益をもたらすことは認めざるを得ません。

<<:  テックネオテクノロジーサロ​​ン - 第17号 - クラウド時代のネットワーク境界管理の実践

>>:  金融を専攻する学生は人工知能をどのように学ぶべきでしょうか?

ブログ    

推薦する

アルゴリズム要件実装の難航の記録: 軽量な人間姿勢推定モデル開発への道

[[425432]]この記事は、ソリューションの選択から再現の試みなど、軽量な人間の姿勢推定モデルを...

中国の「マインドショッピング」技術がマスク氏の脳コンピューターインターフェースに挑戦!ネットユーザー:手を切断することが斬首にエスカレート

心で買い物をすることを想像したことがありますか?最近、タオバオはマインドショッピングと呼ばれるブラッ...

頻繁にミスを犯す自動運転車は「ドメイン適応」が欠如している可能性がある

6月に開催されるCVPR 2019は、マシンビジョン分野で最も重要な学術会議です。選考結果が発表され...

...

私たちは人工知能の第4世代に突入しているのでしょうか?

人工知能はあらゆる社会的立場を変えるイノベーションです。これは、データを統合し、情報を分析し、その後...

...

ゼロから: Python で決定木アルゴリズムを実装する

決定木アルゴリズムは、非常に人気のある強力な予測方法です。初心者だけでなく専門家にも簡単に理解できる...

プレイヤー同士のアライアンス形成が加速しているが、アライアンスは自動運転の新たな活路となり得るのか?

さまざまなメーカーが続々と参入し、スマートカー市場はますます熱を帯びています。このような背景から、ス...

...

ジェネレーティブ AI 時代のデータ センターの再構築

最近の人工知能に関する議論には、OpenAI の大規模言語モデル (LLM) の GPT ファミリー...

トップ 10 の AI フレームワークとリポジトリのレビュー、その長所と短所の分析

[51CTO.com クイック翻訳] 人工知能は決して新しいものではありませんが、科学の分野では古く...

...

教師なし学習のための最も強力な戦略

[[279087]] MLKはMachine Learning Knowledgeの略で、機械学習の...

2024年にIT業界は成長を遂げる:AIとサイバーセキュリティが最大のホットスポット

IDCは、2024年のIT市場はチャンスに満ちていると指摘した。インフレや経済などの要因が懸念材料と...

ディープラーニングの「記憶喪失」に応えて、科学者たちは類似性に基づく重み付けインターリーブ学習を提案し、PNASに掲載された。

人間とは異なり、人工ニューラル ネットワークは新しいことを学習するときに以前に学習した情報をすぐに忘...