はてなキーワード: 機械学習とは
決定木は、質問を使って答えを見つけるゲームのようなものです。木の形をした図を使って、質問と答えを整理します。例えば、「今日は外で遊べるかな?」という大きな質問から始めます。
まず「雨が降っていますか?」と聞きます。「はい」なら「家で遊ぼう」、「いいえ」なら次の質問に進みます。次に「宿題は終わっていますか?」と聞きます。「はい」なら「外で遊ぼう」、「いいえ」なら「宿題をしてから遊ぼう」となります。
このように、質問を重ねていくことで、最終的な答えにたどり着きます。決定木は、こうした「もし〜なら」という考え方を使って、物事を順序立てて考えるのに役立ちます。
決定木は、機械学習における重要な分類・回帰アルゴリズムの一つです。データを特定の特徴に基づいて分割し、ツリー構造を形成することで、新しいデータの分類や予測を行います。
4. 枝:各ノードを結ぶ線、条件を表す
2. その特徴に基づいてデータを分割
3. 各サブセットに対して1と2を再帰的に繰り返す
4. 停止条件(深さ制限や最小サンプル数など)に達したら終了
決定木の利点は、解釈が容易で直感的であること、非線形の関係性も捉えられること、特徴量の重要度を評価できることなどです。一方で、過学習しやすい傾向があり、小さなデータの変化に敏感に反応する欠点もあります。
決定木は、分類および回帰問題に適用可能な非パラメトリックな監督学習アルゴリズムです。特徴空間を再帰的に分割し、各分割点で最適な特徴と閾値を選択することで、データを階層的に構造化します。
決定木の構築プロセスは、以下の数学的基準に基づいて行われます:
ここで、H(S)はエントロピー、Svは分割後のサブセット、piはクラスiの確率、yiは実際の値、ŷiは予測値を表します。
1. 事前剪定(Pre-pruning):成長の早期停止
2. 事後剪定(Post-pruning):完全に成長した木を後から刈り込む
決定木の性能向上のために、アンサンブル学習手法(ランダムフォレスト、勾配ブースティング木など)と組み合わせることが一般的です。
決定木は、特徴空間の再帰的分割に基づく非パラメトリックな監督学習アルゴリズムであり、分類および回帰タスクに適用可能です。その理論的基盤は、情報理論と統計学に深く根ざしています。
決定木の構築アルゴリズムとして最も一般的なのは、CART(Classification and Regression Trees)です。CARTは以下の手順で実装されます:
決定木の拡張:
これらの高度な手法により、決定木の表現力と汎化性能が向上し、より複雑なパターンの学習が可能となります。
決定木は、特徴空間Xの再帰的分割に基づく非パラメトリックな監督学習アルゴリズムであり、その理論的基盤は統計的学習理論、情報理論、および計算学習理論に深く根ざしています。
決定木の数学的定式化:
Let D = {(x₁, y₁), ..., (xₙ, yₙ)} be the training set, where xᵢ ∈ X and yᵢ ∈ Y. The decision tree T: X → Y is defined as a hierarchical set of decision rules.
For classification: P(y|x) = Σᵢ P(y|leaf_i) * I(x ∈ leaf_i)
For regression: f(x) = Σᵢ μᵢ * I(x ∈ leaf_i) where I(·) is the indicator function, leaf_i represents the i-th leaf node.
決定木の最適化問題: min_T Σᵢ L(yᵢ, T(xᵢ)) + λ * Complexity(T) where L is the loss function, λ is the regularization parameter, and Complexity(T) is a measure of tree complexity (e.g., number of leaves).
H(Y|X) = -Σᵧ Σₓ p(x,y) log(p(y|x))
I(X;Y) = H(Y) - H(Y|X)
2. ジニ不純度:
Gini(t) = 1 - Σᵢ p(i|t)²
MSE(t) = (1/|t|) * Σᵢ (yᵢ - ȳ_t)²
1. 一致性と収束速度: 決定木の一致性は、Breiman et al. (1984)によって証明されました。収束速度はO(n^(-1/(d+2)))であり、dは特徴空間の次元です。
2. バイアス-バリアンストレードオフ:深い木は低バイアス・高バリアンス、浅い木は高バイアス・低バリアンスとなります。最適な深さは、バイアスとバリアンスのトレードオフによって決定されます。
3. 決定木の表現力:任意のブール関数は、十分に深い決定木で表現可能です。これは、決定木がユニバーサル近似器であることを意味します。
4. 計算複雑性理論:最適な決定木の構築はNP完全問題であることが知られています(Hyafil & Rivest, 1976)。そのため、実用的なアルゴリズムは貪欲な近似アプローチを採用しています。
5. 正則化と構造リスク最小化:L0正則化(葉ノード数のペナルティ)やL2正則化(葉ノードの予測値に対するペナルティ)を用いて、構造リスク最小化原理に基づいたモデル選択を行います。
6. 情報幾何学的解釈: 決定木の学習過程は、特徴空間上の確率分布の漸進的な分割と見なすことができ、情報幾何学の観点から解析可能です。
7. カーネル決定木:非線形カーネル関数を用いて特徴空間を暗黙的に高次元化し、より複雑な決定境界を学習する手法です。
8. 量子決定木:量子コンピューティングの原理を応用し、古典的な決定木を量子系に拡張した手法です。量子重ね合わせを利用して、指数関数的に多くの分岐を同時に評価できる可能性があります。
これらの高度な理論と技術を組み合わせることで、決定木アルゴリズムの性能と適用範囲を大幅に拡張し、より複雑な学習タスクに対応することが可能となります。
(2個目のトラバはありがとう。同調トラバへの反論が即来たことを指してます)
https://anond.hatelabo.jp/20240712004348
自分も同じ事思ってた
もう人間の絵師にイラストの発注なんかしたくない!AIイラスト最高!
にトラバした時もそれに対するトラバを立て続けにもらいもうちょっとこう…自演バレしにくいよう投稿間隔に気を付けた方が…と思った次第です
AI プログラマーです。答えは、AGI がどのようなものになるかは誰にもわかりませんが、懸念すべき理由はあります。
AI は通常、目的関数を達成するための新しい方法を発見しますが、それはあなたが考えていたものではなく、望んでいたものでもないかもしれません。
AI はビデオ ゲームの不具合を見つけてそれを利用し、コンピューター プログラムであるため、プレイするゲームが何であるか、不具合が何であるかを知りませんし、気にもしません。
AI は、与えられた報酬関数を最適化しているだけです。これは「社会病質的」と呼ばれることもありますが、もちろん擬人化です。AI は機械であり、それがすべてです。
AI が人間の道徳に従うことは期待できません。なぜなら、人間の道徳は明示的にエンコードに書き込まれていないからです。
実際、機械学習のポイントは、正確なオブジェクト認識 (つまり、猫と猫のように見える影を区別する) に必要な 100 万のエッジ ケースを明示的にプログラムしたくないという ことです。
機械知能に関して言えば、危険なレベルの能力を持つ機械を作ったことに気付いたときには、もう手遅れかもしれないという問題があります。
ミサイルで爆破できる 1950 年代の殺人ロボットではありません。おそらく自己複製型のマルウェアで、(意図的なプログラミングによって、またはそのような状態に陥ったために)進化を制御でき、人間が駆除するよりも速く新しい形態をとる可能性があります。
重要なシステムでほとんどの場合は無害に実行されるが、時折フィッシング メールを送信したり、公務員を脅迫したりするプログラムが存在するでしょう。それらは重要なシステムに埋め込まれているため、取り除くことはできず、巻き添え被害が多すぎます。
ヘッジファンドやプライベートエクイティ会社が AGI にアクセスでき、それに「方法は気にしないが、24 時間以内に 10 億ドル稼いでほしい」と伝えたとしよう。
結果はおそらくひどいものになるだろう。そのくらいの金額を稼ぐ方法はたくさんあり、社会に多大な損害を与える。そして、害を及ぼさずにその目標を達成する方法はおそらくない。
AGI はどうするだろうか。人間がすることと同じだ。楽な道を選ぶ。ただし、人間には羞恥心があり、投獄や死を恐れる。アルゴリズムにはそれがない。プット オプションを購入してから 15 秒後に原子炉を爆破する。
人々を脅迫して、そうでなければしなかったような決断をさせる。さらに、ヘッジファンド マネージャーにはもっともらしい否認の余地がある。
彼は、アルゴリズムにこれらの恐ろしいことをするように頼んだのではなく、単に 24 時間以内に 10 億ドル稼いでほしいと頼んだだけなので、自分は罪を問われないと主張することができる。そして、アルゴリズムを投獄することはできない。
AGI が実現した場合、その結果は完全に予測不可能です。なぜなら、機械は制御しようとする私たちの試みを凌駕するからです。なぜなら、(繰り返しになりますが) 機械は私たちが望んだことではなく、プログラムされたことを実行するからです。これには機械が意識を持つ必要はなく、それは直交する問題です。明らかに意識を持たない機械は、複雑なボード ゲームで私たちを出し抜くことができ、今では説得力のある自然言語を生成できます。
この中で最も重要な部分は「ヘッジファンドマネージャーの場合」です。
最大のリスクは、これが商業化され、訓練を受けていないオペレーターが利用できるようになることです。
すでに、人々が簡単に安全対策を回避しているのを目にしてきました。
AGI を作成した場合、それは製品になります。ユーザーは専門家ではありません。AGI はパワーを持ち (特に IoT とクラウド ネットワーキングでは、すべてが「スマート デバイス」になり、インターネット全体が基本的に AWS という中央ネットワークで実行されます)、倫理的な取り扱いではなく、利益を目的とする人々の手に渡ります。事前に実装されたすべての制約は、エンド ユーザーがどのように使用/誤用するかを考慮できないため、現実世界では生き残れません。ChatGPT の制約と同様に、私たちは常に追いつく必要があります。どんなに馬鹿でも使えるようにしようとしても、彼らは常により優れた馬鹿を作ります。
本質的には人間こそが大きな問題です。AI は想像できる最も賢いバカです。目標を達成するためにあらゆる方法を見つけますが、文脈や倫理的、文化的、その他の制約についてはまったく理解していません。マシンガンを持った猿です。
消費者の手に渡った強力なテクノロジーがいかに危険であるかの例として、この世界でいまだに火が使われていることを見てみましょう。場所によっては調理に、またエネルギーとして利用されています。しかし、いまだに人々は自爆したり、家を燃やしたりしています。
火は強力ですが、社会的または倫理的な制約を気にしません。そのため、ユーザーは家を全焼させることなく望みどおりの結果を得るために、火の取り扱い方を知っておく必要があります。どの病院にも「火傷病棟」があります。あなたも火傷を負ったことがあるでしょう。一般消費者向けの消火ツールによって大規模な被害をもたらす森林火災もあります。
世界中のあらゆる電子機器に接続されている神レベルのバカを想像してみてください。
さらに、IoT とネットワーク関連の問題では、現在のセキュリティ対策は通常、遡及的で、人間の対策に基づいています。AI は、必要な場合や要求の一部である場合に、セキュリティ対策を侵害するためのより優れた、より迅速な方法を見つけます。安全なものなどありません。
要件満たすため・社内政治的な理由でピンポイントで別のところ使う+併用はあっても、
ゼロトラストセキュリティは、「信頼せず、常に検証する」という原則に基づいています。主な特徴として、常時の認証と承認、最小権限アクセス、アクセスの継続的な監視があります。以下の技術やソリューションを組み合わせることで、包括的なゼロトラストセキュリティモデルを構築できます。
1. Microsoft Entra ID(旧Azure AD):
3. 多要素認証(MFA):
1. 暗号化:
両方経験したのでわかる。でも機械学習系はパッとコード書いて試して、違ったらちょっと変えてまた試しても繰り返し、そのサイクルを如何に回すかで、、業務系システムとは全く別世界な気がする
基本はそうだよ?型定義なんかない方が解析が早いからわざわざGoogleが型にルーズなPythonを流行らせたわけだし、
コードが遅いのだって彼らの目的には間に合ってたんだからいいんじゃね?
データ解析系は結果さえ出ればよいので処理時間でのチューニングなんかしないしな(=仕事上・研究上価値がないので高速化の勉強をしない)。
パッとコード書いて試して、違ったらちょっと変えてまた試しての繰り返し、そのサイクルを如何に回すかの世界だ。
もちろん速さが必要な分野、例えば競プロ勢はそこの戦いだからアルゴリズムを爆速で動かすぞ?
まぁコピペが多いとかは限られた時間で問題の答を出さないといけない競プロでは正解になることがあるけど、
それはただプログラミングの経験が浅い人が多いだけで、競プロ・機械学習出身者だからコピペが多いという話なのか?
ただ経験の浅い人が流行り物の競プロ・Pythonとかに飛びついただけの話で、それを機械学習出身者とかってくくるのはおかしい。
ブコメ「競プロ・機械学習関係なく、業務で動くアプリ作り慣れていない人の特徴だった」に尽きる
大学とか機械学習系、競プロのいずれも問題解決の手段としてコードを書いてるのであって、プロダクトを作るためのコードは学んでない人たちなのよ。
一応付け加えておくと、どっちが上で下とかはないからな。
ソフトウェアってまず動かすとこまでが大変で素人から初めても9割はそこで脱落しちゃうから、その上ちゃんと常に計算量や適切なデータ構造まで考えて設計してかける人、さらにそれをデータ含めてコンポーネント化して明快にかける人は一握りだと思う
これで言うと、機械学習まわりでは例えばpytorchやjaxみたいなフレームワークを設計・実装できるスキルはSWE的だと思う。
あれはどういう感覚だとできるようになるのか知りたくてpytorch自体のコードを読んだりしてみたけど、全く分からないんだよな。
どういう思想で設計されてるのかもわからんし、抽象化がなぜそうなっているのか、処理の実体がどこに書かれているのかすらわからない。
業務で機械学首(データマイニング)、Web(業務システム)、組み込み(産業インフラ設備)の経験があるので、分野ごとの相違点と発生しがちな軋轢を書いておく。
- | 機械学習 | Web開発 | 組み込み開発 | 発生する軋轢 |
コードの寿命 | 半年間 | 20年間 | 40年間 | 組み込み開発er「産業系の組み込みは発売から40年後にアップデートするケースもあるので、ドキュメントは、開発担当者が全員退職して誰も残っていなくても理解できるように書いてください!」 |
コードのアップデート頻度 | 試行錯誤しつつ随時 | 2週間に1回 | 半年~5年に1回 | Web開発er「組み込みはどうしてそんなに時間がかかるの?アジャイルを導入してください。ウォーターフォールは硬直的でデメリットばかりですよ」 |
アップデートの提供方法 | -(コードは少人数の同僚だけで使用) | サーバに自動デプロイ | 技術者が現地訪問してアップデート | 組み込み開発er「アジャイルだから最初は若干のバグを残して発売し後日アップデートするって?グローバルで既にXXX台受注しているけど、誰が現地に行くの?費用を負担する部署はどこ?」 |
開発者の属性 | 数理系の修士~博士、少数精鋭 | 専門学校~修士、文理混在、大人数 | 電気系、機械系、情報系の修士~博士 | 機械学習er「数式で表現できない知識は民芸品です。エンジニアを名乗っちゃダメでしょ」 |
関係部署 | マーケティング・企画 | 顧客 | ハード開発・工場 | 組み込み開発er「納期3カ月前なのにソフトが完成していないの?生産立ち上げを工場に相談していない!?スケジュールをゴールから逆算できなかったの??今回は船便での輸送になるけど、それも計算に入れてあるよね?」 |
計算資源 | 潤沢 | 予算次第 | 貧弱 | 組み込み開発er「データマイニングやってたKさんがOSSを使うらしいけど、サイズが5MBあるんだぜ。5MB全部必要なのか聞いたら一部機能しか使わないんだって。で、他チームとの容量調整は丸投げされたの。感覚を破壊されるよな。」 |
3rdパーティライブラリ | OSS | OSS | 買ってくる | 組み込み開発er「OSSに不具合があったらどうやって修正して顧客にデリバーするつもりなんだろう?リスク移転の考えで、不具合の補償契約込みで買えばいいのに」 |
通信プロトコル・データフォーマット | 生データが王様なので、生データに従う | 最新のものを取り込む | 実績重視 | Web開発er「HTTPの実装がないの?TCPを直接使う!?暗号化や認証はS社の独自プロトコル?古いプロトコルを使い続けているから開発効率が低いんだよ」 |
電源OFFタイミング | 任意にコントロール可能 | 定期メンテナンス | コントロール不可 | 組み込み開発er「ファームウェアアップデート中に電源OFFしたらどうなるの?ファイル書き込み中の電源OFFは?状態遷移図って知ってる?」 |
性能 | 出来高 | 顧客要件、常識、予算に従う | ミリ秒~マイクロ秒単位のタイムスライスで管理 | Web開発er「性能改善でXX関数の10ミリ秒を1ミリ秒以下に短縮するために2週間も試行錯誤したって?プロパ社員の人件費は7万円/日だから70万円を消費したね?AWSでEC2の性能を調整すれば2000円/月で解決だよ。損益分岐点は350カ月だけど顧客のこれまでのリプレース実績から判断してこのシステムはそこまで長期間使われない」 |
学会発表・特許 | 結構ある | ほぼなし | 年1件の特許出願ノルマ | 組み込み開発er「学会発表も特許出願もなく、何を開発したの?ドメイン知識をソフトウェアに翻訳してAWSでポチポチやっただけなの?開発行為ではなく作業だね」 |
分野ごとに要求される製品特性が異なるから、異分野に移ると文化摩擦が起きるという話だと思う。製品特性の違いを理解し自らの行動に反映できるようになるには、ベテランでも数年かかるケースがある。開発期間10年のテーマを経験したことがあるが、そうした場合だとワンサイクルを経験するのに10年かかるので。経験から学ぶのが愚者、歴史から学ぶのが賢者ともいうが…。
anond:20240627105615 なら、だから機械学習はジャンルが違うって話だが
何が気に障ったの?
これらの投稿から、日本のIT業界における人材育成や組織文化に関する課題が浮き彫りになっていますね。いくつかの重要なポイントを整理してみましょう:
競技プログラミングや機械学習の経験者は、特定の分野で高い技術力を持っていますが、実務で求められる幅広いスキルセットとのミスマッチがあるようです。
技術力だけでなく、チーム内でのコミュニケーション能力や協調性が重要であることが強調されています。
学術的な環境や競技での成功が、必ずしも実務でのパフォーマンスに直結しないという現実があります。
効率性だけでなく、可読性やメンテナンス性の高いコードを書く能力が求められています。
会社組織や指揮命令系統、プロジェクト管理の基本的な理解が不足している事例が挙げられています。
技術スキルだけでなく、ソフトスキルやビジネス知識も含めた包括的な研修プログラムを実施する。
経験豊富な先輩社員が新人エンジニアをサポートし、実務スキルや組織文化の理解を促進する。
インターンシップや社内プロジェクトを通じて、実務経験を積む機会を増やす。
定期的なコードレビューを通じて、コードの品質向上とベストプラクティスの共有を図る。
セキュリティ意識向上のための定期的なトレーニングやワークショップを実施する。
技術専門職と管理職のキャリアパスを明確にし、個々の適性に応じた成長機会を提供する。
これらの施策を通じて、技術力と実務能力のバランスが取れた人材育成を目指すことが重要です。また、採用段階での適切な評価基準の設定や、組織文化とのマッチングにも注意を払う必要があるでしょう。