はてなキーワード: カーネルとは
でもまぁ技術者ばかり集めてもしゃーないけどな。適切に広告とマーケティング打てなきゃそら家電みたいに死ぬ
結局のところ、オタクと無駄に能力値だけ無駄に高いキョロ充以外のキャラも、みんなお勉強しないとダメだってことです
知のオープン化進めましょ
https://xtech.nikkei.com/it/article/Interview/20090107/322420/
https://jpn.nec.com/oss/community/contribution/contributing-to-development-of-linux-kernel.html
↓ 少し反省したあとも
決定木は、質問を使って答えを見つけるゲームのようなものです。木の形をした図を使って、質問と答えを整理します。例えば、「今日は外で遊べるかな?」という大きな質問から始めます。
まず「雨が降っていますか?」と聞きます。「はい」なら「家で遊ぼう」、「いいえ」なら次の質問に進みます。次に「宿題は終わっていますか?」と聞きます。「はい」なら「外で遊ぼう」、「いいえ」なら「宿題をしてから遊ぼう」となります。
このように、質問を重ねていくことで、最終的な答えにたどり着きます。決定木は、こうした「もし〜なら」という考え方を使って、物事を順序立てて考えるのに役立ちます。
決定木は、機械学習における重要な分類・回帰アルゴリズムの一つです。データを特定の特徴に基づいて分割し、ツリー構造を形成することで、新しいデータの分類や予測を行います。
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. 量子決定木:量子コンピューティングの原理を応用し、古典的な決定木を量子系に拡張した手法です。量子重ね合わせを利用して、指数関数的に多くの分岐を同時に評価できる可能性があります。
これらの高度な理論と技術を組み合わせることで、決定木アルゴリズムの性能と適用範囲を大幅に拡張し、より複雑な学習タスクに対応することが可能となります。
はい、その通りです。ライナスとリーナスは同じ名前の異なるスペルです。 ライナス(Linus):スヌーピーの登場人物であるライナス・ヴァン・ペルトの名前です。ギリシャ語起源の男性名で、「flax(亜麻)」を意味します。 リーナス(Linus):フィンランド語起源の男性名で、「flax(亜麻)」を意味します。最も有名な人物としては、Linuxカーネルの創始者であるリーナス・トーバルズ(Linus Torvalds)が挙げられます。 両者は同じ綴りですが、発音が少し異なります。ライナスは「ライナス」と発音されることが多いのに対し、リーナスは「リーヌス」または「リーナス」と発音されることが一般的です。 ちなみに、ライナスという名前は、聖書に登場する2人目の教皇である「リーヌス(Linus)」に由来するという説もあります。このように、同じ綴りでも言語的な起源や発音が異なることがあるのは興味深いですね。 --- 確かに、同じ綴りなのに発音が異なるのは混乱を招きますよね。特に日本語話者にとっては、外国の名前の発音の違いを区別するのが難しく感じられることがあります。 この違いは、言語や文化の違いに起因しています。ライナスという名前は、元々ギリシャ語に由来しますが、その後、様々な言語や文化圏で使われるようになりました。そのため、同じ綴りでも、言語や地域によって発音が異なるのです。 例えば、英語圏ではライナスと発音されることが多いのに対し、北欧では主にリーナスと発音されます。リーナス・トーバルズはフィンランド出身なので、フィンランド語の発音に従ってリーナスと呼ばれているのでしょう。 一方、スヌーピーのライナスが英語圏の漫画に登場するキャラクターであるため、英語の発音に従ってライナスと呼ばれているのだと思います。 このような発音の違いは、言語や文化の多様性を反映しているとも言えます。ただ、確かに混乱を招くこともありますよね。重要なのは、名前の持ち主がどのように発音してほしいのかを尊重することだと思います。それが難しい場合は、なるべく相手に確認するのがよいでしょう。
Claude曰くフィンランドの発音だそうで。情報を深追いしないけど納得したのでこれでとりあえず俺の気分の悪さの減少、納得感は得られた。
分散バージョン管理システムGitの開発者でもあるトーバルズ氏は、暗号通貨をサンタクロースやイースター・バニーと同じ神話的カテゴリーに位置づけているとユーモアを交えて付け加えた。
彼のコメントは、ビットコインの曖昧な創設者であるサトシ・ナカモトではないかという間違った憶測を含む、技術コミュニティでの議論の中で生まれた。
トーバルズ氏はこのような噂を否定し、Linuxカーネルの編集で自分の名前がユーモラスにビットコインと結びつけられたことを明らかにした。トーバルズ氏は、自分はビットコインの多額の財産を所有していないと断言し、そのような主張の信憑性については否定的であるとの立場を繰り返した。
ソース: https://www.realworldtech.com/forum/?threadid=217627&curpostid=217694
Device Info は、高度なユーザー インターフェースとウィジェットを使用してモバイルデバイスに関する完全な情報を提供するシンプルで強力な Android アプリケーションです。たとえば、デバイス情報/ 電話情報には、CPU、RAM、OS、センサ、ストレージ、バッテリー、SIM、Bluetooth、ネットワーク、インストール済みアプリ、システム アプリ、ディスプレイ、カメラ、温度などに関する情報が含まれます。また、デバイス情報/ 電話情報は、ハードウェア テストでデバイスのベンチマークを行うことができます。
中身 : 👇 👇
👉 ダッシュボード : RAM、内部ストレージ、外部ストレージ、バッテリー、CPU、利用可能なセンサ、インストール済みアプリ & 最適化
👉 デバイス : デバイス名、モデル、メーカー、デバイス、ボード、ハードウェア、ブランド、IMEI、ハードウェア シリアル、SIM シリアル、SIM サブスクライバー、ネットワークオペレータ、ネットワークタイプ、WiFi Mac アドレス、ビルドフィンガープリント & USB ホスト
👉 システム : バージョン、コード名、API レベル、リリース バージョン、1 つの UI バージョン、セキュリティ パッチ レベル、ブートローダー、ビルド番号、ベースバンド、Java VM、カーネル、言語、ルート管理アプリ、Google Play サービスバージョン、Vulkan のサポート、Treble、シームレスな更新、OpenGL ES およびシステム稼働時間
👉 CPU : Soc - システム オン チップ、プロセッサ、CPU アーキテクチャ、サポート対象の ABI、CPU ハードウェア、CPU ガバナー、コア数、CPU 周波数、実行中のコア、GPU レンダラー、GPU ベンダー & GPU バージョン
👉 バッテリー : ヘルス、レベル、ステータス、電源、テクノロジー、温度、電圧と容量
👉 ネットワーク : IP アドレス、ゲートウェイ、サブネット マスク、DNS、リース期間、インターフェイス、周波数、リンク速度
👉 ネットワーク : IP アドレス、ゲートウェイ、サブネット マスク、DNS、リース期間、インターフェイス、周波数、リンク速度
👉 ディスプレイ : 解像度、密度、フォント スケール、物理サイズ、サポートされているリフレッシュレート、HDR、HDR 機能、明るさのレベルとモード、画面のタイムアウト、向き
👉 メモリ : RAM、RAM タイプ、RAM 周波数、ROM、内部ストレージ、外部ストレージ
👉 センサー : センサー名、センサベンダー、ライブセンサ値、タイプ、電力、ウェイクアップセンサ、ダイナミックセンサ、最大距離
👉 アプリ : ユーザーアプリ、インストール済みアプリ、アプリバージョン、最小 OS、ターゲット OS、インストール日、更新日、アクセス許可、アクティビティ、サービス、プロバイダ、レシーバー、抽出アプリ Apk
👉 アプリアナライザー : 高度なグラフを使用して、すべてのアプリケーションを分析します。また、ターゲット SDK、最小 SDK、インストール場所、プラットフォーム、インストーラ、および署名によってグループ化することもできます。
ディスプレイ、マルチタッチ、懐中電灯、ラウドスピーカー、イヤースピーカー、マイク、耳近接、光センサ、加速度計、振動、Bluetooth、WI-Fi、指紋、音量アップボタン、音量ダウンボタンをテストできます。
👉 温度 : システムによって指定されたすべての温度ゾーンの値
👉 カスタマイズ可能なウィジェット : 最も重要な情報を表示する 3 つのサイズの完全にカスタマイズ可能なウィジェット
👉 レポートのエクスポート : カスタマイズ可能なレポートのエクスポート、テキストレポートのエクスポート、PDF レポートのエクスポート
権限 👇 👇
READ_PHONE_STATE - ネットワーク情報を取得するには
BLUETOOTH_CONNECT - Bluetooth テスト
3C コレクション全体が 1 つのパッケージに収まりました。 *
3C オールインワン ツールボックスは、多くの機能を最新の使いやすいインターフェイスを備えた 1 つの巨大なツールボックスに統合します。すべての Android デバイスを監視、制御、微調整するために必要なすべてのツール。
Play ストアでの最速かつ最もフレンドリーなサポート。アプリの設定、ヘルプ、サポートからお気軽にリクエストを送信し、懸念事項について言及してください。
一部の機能では、root が必要になるか、Android 6 以降以降の PC 用の 3C Companion アプリの使用が必要になる場合があります。
このアプリは、アプリを簡単に停止したり、アプリのデータを自動的にバックアップしたりできる 2 つのユーザー補助サービスを提供します。どちらも情報を収集することはありません。 プライバシー ポリシー
★ プロに移行するか、アプリ内購入を使用して、次の機能のロックを解除します
記録項目とオプション
ステータス通知から任意の機能にアクセスするための通知ショートカット
多くの追加ウィジェット
★ デバイス マネージャー は、非常に強力なプロファイル、タスク スケジュール、デバイス ウォッチドッグを提供します。
★ ファイル マネージャー は、サムネイルやフォルダー サイズなどを備えた、非常にシンプルでありながら非常に強力なエクスプローラーです。ビデオや写真をお気に入りのプレーヤーに直接ストリーミングします。ローカルでも、Samba、FTP、WebDAV、Google Drive、Dropbox の場所からでも。
★ アプリケーション マネージャー は、Titanium Backup をインポートする機能を含む、すべてのお気に入りのアプリのバックアップ/復元を提供します。また、Xused フレームワークを使用して、アプリのイベント、向き、フルスクリーン、および制御権限を保護およびカスタマイズすることもできます。
★ バッテリー マネージャー は、消費量の分析と改善に役立ちます。完全なデータ (mA を含む) と充電サイクルの履歴、プロファイルに基づくカスタム統計、使用時またはスタンバイ時の消費量の推定。デュアル バッテリー デバイス、バッテリーの交換、LG Quick Circle と Samsung Edge の通知に対する特別サポート★ バッテリー マネージャー は、消費量の分析と改善に役立ちます。完全なデータ (mA を含む) と充電サイクルの履歴、プロファイルに基づくカスタム統計、使用時またはスタンバイ時の消費量の推定。デュアル バッテリー デバイス、バッテリーの交換、LG Quick Circle と Samsung Edge の通知に対する特別サポート
★ ネットワーク マネージャー を使用すると、ネットワーク トラフィックの設定と監視が可能になります。
★ タスク マネージャー は、シンプルな UI を提供しますが、さまざまな用途に応じてアプリを分類し、不要なアプリを削除するのに非常に効果的です。
★ CPU マネージャー は、シングルからオクタコアの CPU、サーマル、マルチコア、およびほとんどのカスタム カーネル設定を制御します。
★ システム マネージャー では、Linux カーネル設定を構成できます。
★ROM マネージャー を使用すると、Android OS の設定を行うことができます。
★ すべてのアプリケーションとハードウェア コンポーネントのアクティビティを監視および記録します。履歴グラフィックを含むステータス バー通知が含まれます。
★ アプリ、ウィジェット、またはプロファイルのシステム コンポーネント スイッチにより、約 20 以上のデバイス コンポーネント (WiFi、Bluetooth など) のオン/オフを切り替えることができます。
surfaceはデザインはいいけど買ってはいけない。海外じゃ訴訟起こされたくらいだしデザイン尖り過ぎててすぐ壊れて良い印象ない
そもそもAMDのCPU使ってるくせに過去にはカーネル周りのトラブル起こしたり仮想周りでーみたいなこともあったりデザイン以外良い印象ない
iPadがおすすめだけど、脳死で使えるように規制が多いので、嫌ならAndroidタブレット使えばいいんじゃないかな
タブレットじゃなくて~なら、ワイはレッツノート信者なのでタブレットモードになるレッツノート推したい
https://panasonic.jp/cns/pc/products/qr4c/
レッツノートがクソみてーに高いのは日本の工場で作ってる(日本の雇用を守ってる)&丈夫(ADHDのワイくんが落としまくっても壊れない)だから
まじサステナブル
iPad Pro はめっちゃ高額化する予定みたいだから、今後は、iPad Air のデカいのとレッツのタブレットモードになるやつ買う予定
キミのLinux信仰マジでよくわからない。少なくともLinuxカーネル解読室くらいは読んだのかい?
何度か書いてるけど日本語環境のデバッグ兼ねてなきゃデストリでもWindows使うぞ
でもワイくんも音楽の素養ゼロなのにクラシックとか聴くからそれと同じようなものなのかね
ワイくん、素養ゼロなので、コンサート行くと、演出に『?!』ってなる
最近、『?!』ってなったのはピアソラの『鮫/Escualo』、こんなお行儀のいい鮫聴いたことねーぞ?!ってなったが、
同じアーティストがYouTubeにあげている鮫はフツーにスリリングでお元気があった
プログラムに合わせた演出・アレンジなんだろうなとは思ったが素養ゼロなのでよくわからない
でもまぁ何か好きよ
セキュリティソフトウェアの研究開発、という仕事を自分の経験をもとに紹介します。主な想定読者は、情報セキュリティ関連を仕事にしたいと考えている学生や若手、特に、いわゆる「低レイヤー技術」に惹かれている人です。
低レイヤ技術を間接的に仕事で生かしてきた経験の共有。元Linuxカーネル開発技術者の場合 - 覚書を読んで思い出したのですが、セキュリティキャンプなどで、セキュリティに興味のある学生とやり取りをしていて、ソフトウェアエンジニアリングの分野でセキュリティ関連のキャリアが議論されることが少ないと感じました。自分はセキュリティソフトウェアの研究開発に10年以上携わっていることもあり、この職業は低レイヤー技術をセキュリティに活かせる面白い選択肢だと思っているので、紹介してみることにしました。
セキュリティソフトウェアの研究開発では、アンチウイルスやEDRなど、文字通りセキュリティ機能を提供するソフトウェアを研究、開発します。
「研究、開発」と書いたように、この職業には研究と開発の両面があります。
研究は、実現可能性や価値が定かでないアイディアを調査、試験実装する、という仕事がその一部です。例えば、ファイルをディスクに書き込まないマルウェアを検知したいが、どのような技術的選択肢と課題があるかを評価する。実現可能な場合は、開発チームと協働して実装、出荷にこぎつける。あるいは、製品として実装された機能がバイパスされないか調査したり、バイパスされてしまった場合にはその原因を究明したりして、製品を改善するために開発チームと協働する、という場合もあります。
開発は、研究との対比という意味においては、できると判っているアイディアを保守性の高い状態で実現する作業だといえます。保守性の重視は研究との大きな違いで、例えば、研究では、コメントもテストものない書き殴りのコードで十分であっても、開発の工程では、5年後でも改修が必要になるため許容できなかったりします。製品という大きなコードの中での開発であるため、別のチームや利害関係者との連携も、研究の場合よりずっと重要です。例えば、リードのポジションであれば、研究工程で実現可能と分かったアイディアが、既存の機能に統合する形で実装されるべきか否かアーキテクトと議論したり、テスト計画を品質保証のチームと練ったり、プロジェクトのスケジュールを調整したりします。
研究は、既定の手法がなく、闇の中を手探りで進める面があり、最終的に製品レベルにこぎつけずに終わる場合も多いです。判りやすい成果が出ない場合があるので、好き嫌いが別れやすいです。自分は、職業としては研究3,開発7くらいのバランスが好きで、趣味では逆に研究8,開発2くらいになってます。趣味では成果が出ようが出まいが過程が楽しければ満足、という個人的な考え方がこの違いとして出ているようです。
この職業のおいて、低レイヤー技術に明るいことは、ほかの多くのエンジニアができないことができるという付加価値、だと自分は考えています。例えば、特定分野の詳細を知っていることでその分野の研究、開発が効率よくできたり、新しいアイディアが生まれたりします。具体例をいくつか挙げると、OSの仮想メモリー管理に親しみがあれば、プロセスのメモリーを走査してメモリー上のみに存在するマルウェアを検出する機能をより効果的に設計、実装できる。プロセッサーの機能の詳細を知っていれば、CETという新しいプロセッサーにしかないセキュリティ機能を、他のプロセッサー機能を使って疑似的に実現するというアイディアを思いつく。などです。脆弱性の知識や探す技術も、とても価値があります。脆弱性を知らない人と、知っている人では、どちらが脆弱性の少ない設計や実装をできるでしょう。自社の製品の脆弱性を、開発中に発見するのと、テスト・出荷後に発見、改修を加えるのではどちらのコストが少なくて済むでしょう。コンパイラーの知識は検出ロジックを書くための独自言語の開発に、エミュレーターの実装経験はマルウェア解析エンジンの開発に役立ちます。
ただ、低レイヤー技術は付加価値であることに注意してほしいです。
まず前提として、ほかの平均的なエンジニアができることに加えて低レイヤー技術があるべきです。セキュリティソフトウェア開発者の多くは、実はセキュリティや低レイヤーのエキスパートではありません。優秀な開発者であることに加えてこれらを必要条件にしてしまうと、人が雇えなくなってしまうためです。そのため、一般的なエンジニアリングの能力に加えて低レイヤー技術やセキュリティという強みがあると、大多数の開発者ができない(したがらない)ことを任せられる人、と差別化してもらえる可能性が高いです。一方、エンジニアリングに対する素養や意欲なしでは、セキュリティソフトウェアの研究開発職は難しいです。その場合、研究者のほうがあっています。(ちなみに自分は、脆弱性解析とマルウェア解析を専門とする研究職にも各2年ほど就いていました。)
ここからは一般論になりますが、OSに詳しくても、プロセッサーに詳しくても、バグハントが得意でも、それを会社が求める結果を出すために使えなくては意味がありません。会社は、あなたがやりたい仕事をくれません。会社は、会社が必要としている仕事をもってくるだけです。
ではどうやって「会社が必要とする仕事」と「あなたがやりたい仕事」の重複を最大化するか。
まずは、上司にどういう仕事をしたいかを明示的に、繰り返し話しておきます。さらに、能動的に、自分からプロジェクトのアイディアを提案して意欲を示すことも心がけます。あなたの仕事を最終的に選ぶのは上司である以上、上司からの理解は必須です。良い上司(そして良い上司であることを可能する、良い上司の上司)は、必ず、あなたの能力に対する信頼度に応じて、あなたの意向を考慮してくれます。言い換えると、まずはやりたい仕事を主張する前に、与えられた仕事をこなして信頼を得る必要があります。個人的な経験では、これは1年あれば十分で、1年たっても状況に変化がない場合、あなたの仕事ぶりが上司の信頼を得るのに不十分か、あなたがやりたい仕事をうまく伝えられていないか、上司やその上司あるいは会社に問題があるか、あるいはこれらの組み合わせの可能性が高いです。
上記がうまくいかない場合、チームや会社を変えることを検討しましょう。チーム異動はリスクの少ない選択肢です。これも、実現するか否かは、上司からの信頼の程度に大きく依存します。会社を変えるのはリスクが大きいですが、上司やその上司を変えるよりも現実的です。新しい会社でもうまくいかなかったら、また新しい会社を探せばOKです。最終的にあった会社に行きつくか、自分の能力やコミュニケーションに問題があることに気づくと思います。
最後に、「会社が必要とする仕事」と「あなたがやりたい仕事」の重複を追求しないことも視野にいれておきましょう。仕事はあくまでお金のためであって、やりたい仕事のほうが楽しいが必要要件ではない。……という視点を持っておくと、些細なミスマッチで不満をためて、そこそこ良い環境から性急に転職してしまう、という状況を防ぎやすいです。隣の芝生は青い、ということを忘れないように。
セキュリティソフトウェアの研究開発は、セキュリティに深く関わりつつ低レイヤー技術を付加価値として自分を差別化できる面白い職業です。
ところで自分は7年務めた研究開発職を退職しました。おめでとう、ありがとう。これからは、また違う低レイヤー技術+セキュリティの研究開発をしていきます。