<?xml version="1.0" encoding="UTF-8" ?>
<rss version="0.91">
  <channel>
    <title>いけいけ機械学習</title>
    <description>統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。</description>
    <link>http://learnms.blog.shinobi.jp/</link>
    <language>ja</language>
    <copyright>Copyright (C) NINJATOOLS ALL RIGHTS RESERVED.</copyright>

    <item>
      <title>【DS検定対策】強化学習の土台！「マルコフ決定過程」の割り切り思想</title>
      <description>&lt;p&gt;AIが試行錯誤して最適な動きを学ぶ「強化学習」。その舞台裏を数学的にスマートに表現するのが、マルコフ決定過程（MDP）です。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;強化学習において、環境のモデル化によく用いられる「マルコフ決定過程（MDP）」の性質として、最も適切なものはどれでしょうか？&lt;/p&gt;
&lt;p&gt;① 未来の状態は、過去のすべての状態と行動の履歴に基づいて決定される。&lt;br /&gt;
② 未来の状態は、現在の状態と選択した行動にのみ依存し、それ以前の過去の状態には依存しない。&lt;br /&gt;
③ 未来の状態は完全にランダムであり、現在の状態や行動からは一切予測できない。&lt;br /&gt;
④ 行動を選択しても状態は変化せず、報酬の額だけが確率的に変化する。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② 未来の状態は、現在の状態と選択した行動にのみ依存し、それ以前の過去の状態には依存しない。&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：MDPを構成する「4つの要素」&lt;/h3&gt;
&lt;p&gt;マルコフ決定過程では、エージェント（AI）と環境のやりとりを以下の4つの要素（セットで$S, A, P, R$と表記されます）で定義します。&lt;/p&gt;
&lt;p&gt;【 MDPの基本要素 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;1. &lt;b&gt;状態（State: $S$）&lt;/b&gt;：AIが今置かれている状況（例：迷路の座標「C3」）&lt;br /&gt;
2. &lt;b&gt;行動（Action: $A$）&lt;/b&gt;：AIが取れる選択肢（例：「右に進む」）&lt;br /&gt;
3. &lt;b&gt;遷移確率（Probability: $P$）&lt;/b&gt;：ある状態で行動したとき、次にどの状態に移るかの確率&lt;br /&gt;
4. &lt;b&gt;報酬（Reward: $R$）&lt;/b&gt;：行動の結果として得られるご褒美（例：ゴールに近づいたら「+10点」）&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
★ &lt;b&gt;「過去は関係ない」というメリット：&lt;/b&gt;&lt;br /&gt;
「どうやってその状態（C3）にたどり着いたか」という過去のルートを一切無視して、「今の状態」と「次の行動」だけで未来を計算できるため、数式やプログラムが劇的にシンプルになります。&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. DS検定で狙われる関連用語&lt;/h3&gt;
&lt;p&gt;1. &lt;b&gt;方策（Policy: $\pi$）&lt;/b&gt;: ある状態のときに、どのような確率で行動を選ぶかという「AIの行動指針（戦略）」のことです。&lt;br /&gt;
2. &lt;b&gt;価値関数（Value Function）&lt;/b&gt;: 今の「状態」や「行動」が、将来的にどれくらい報酬をもたらしそうかという「先を見据えたスコア」です。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：強化学習において、現在の状態と行動のみで次の状態が決まる「マルコフ決定過程」の前提が成り立たず、環境の一部しか観測できない複雑な状態をモデル化したものを何と呼ぶか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① 動的計画法 &amp;nbsp; ② 部分観測マルコフ決定過程（POMDP） &amp;nbsp; ③ Qラーニング &amp;nbsp; ④ モンテカルロ法&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ② 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; 現実世界の「霧に隠れて先が見えない麻雀やポーカー」のように、状態の一部が隠されているモデルを「部分観測（Partially Observable）MDP」と呼び、応用問題として時折顔を出します。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「未来の状態は現在の状態と行動に依存し、過去に依存しない」というフレーズが出たら、100%「マルコフ決定過程（MDP）」です。強化学習というゲームのルールブックを定義する言葉として、しっかり記憶に刻んでおきましょう！&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/143/</link> 
    </item>
    <item>
      <title>【Kaggle挑戦記】DNA Classification Dataset：データの取得と構造の確認</title>
      <description>&lt;p&gt;手書き文字認識の「Digit Recognizer」を経て、今回は「DNA Classification Dataset」に挑戦しました。今回はコンペではなく、データセットでの分析にチャレンジします。モデル作成の前に、データの入手手順、データの読み方、およびこのデータにおける予測ターゲットの考え方を整理します。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;0. このデータセットの概要&lt;/h3&gt;
&lt;p&gt;「DNA Classification Dataset」は、ゲノムデータ分析、機械学習、およびバイオインフォマティクス研究のために設計された、3,000個の合成DNAサンプルを含むデータセットです。データの主な仕様は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;データ規模：&lt;/b&gt; 合計3,000行、13カラム（3,000サンプルのDNA配列および統計データ）&lt;/li&gt;
&lt;li&gt;&lt;b&gt;入力データ：&lt;/b&gt; DNA配列の文字列に加え、GC含有率や各塩基の個数など、配列の統計属性があらかじめ特徴量として含まれています。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;タスク：&lt;/b&gt; 与えられたDNAデータから、目的変数（ターゲット）を切り替えることで、生物種の分類や変異の有無、リスクの予測など、複数の異なる検証を行うことができる多角的な構造になっています。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;通常のコンペと異なり、最初から特定のテストデータや単一のゴールが分かれて提供されているわけではありません。Kaggle側での自動採点もないため、手元にある3,000行のデータを自分で分割し、設定したタスクごとに交差検証（クロスバリデーション）によって手元で予測精度を評価・検証していく必要があります。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. データの入手&lt;/h3&gt;
&lt;p&gt;データの取得手順は以下の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Kaggleにログインします。&lt;/li&gt;
&lt;li&gt;検索窓で「DNA Classification Dataset」を検索します。&lt;/li&gt;
&lt;li&gt;該当する「DNA Classification dataset」を選択します。&lt;/li&gt;
&lt;li&gt;右上のダウンロードから、ZIP形式でダウンロードします。&lt;/li&gt;
&lt;li&gt;ダウンロードしたZIPファイルを適当なディレクトリで展開します。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;展開すると、ディレクトリ内に&lt;b&gt;「synthetic_dna_dataset.csv」&lt;/b&gt;ができます。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;2. synthetic_dna_dataset.csvの解説&lt;/h3&gt;
&lt;p&gt;展開して得られたCSVファイルの中身を確認しました。このデータセットに含まれる13個のカラム一覧とそれぞれの解説は以下の通りです。&lt;/p&gt;
&lt;table style=&quot;width: 100%; border-collapse: collapse; margin-top: 10px; margin-bottom: 20px;&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;background-color: #f2f2f2; border-bottom: 2px solid #ddd;&quot;&gt;&lt;th style=&quot;padding: 10px; text-align: left; border: 1px solid #ddd;&quot;&gt;カラム名&lt;/th&gt;&lt;th style=&quot;padding: 10px; text-align: left; border: 1px solid #ddd;&quot;&gt;解説&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Sample_ID&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;各DNAサンプルの固有の識別子（ID）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: #f9f9f9;&quot;&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Sequence&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;DNAの配列データ（A, T, C, Gの文字列）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;GC_Content&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列中におけるグアニン（G）とシトシン（C）の割合（％）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: #f9f9f9;&quot;&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;AT_Content&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列中におけるアデニン（A）とチミン（T）の割合（％）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Sequence_Length&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列の総文字数（長さ）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: #f9f9f9;&quot;&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Num_A&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列中に含まれるアデニン（A）の個数&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Num_T&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列中に含まれるチミン（T）の個数&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: #f9f9f9;&quot;&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Num_C&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列中に含まれるシトシン（C）の個数&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Num_G&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;配列中に含まれるグアニン（G）の個数&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: #f9f9f9;&quot;&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;kmer_3_freq&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;3文字の塩基トリプレット（3-mer）の平均出現頻度スコア&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Mutation_Flag&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;変異の有無を示すバイナリフラグ（0 = なし、1 = あり）。&lt;b&gt;【予測ターゲット候補1：二値分類】&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;background-color: #f9f9f9;&quot;&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Class_Label&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;サンプルの分類クラス（Human / Bacteria / Virus / Plant）。&lt;b&gt;【予測ターゲット候補2：多値分類】&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;&lt;b&gt;Disease_Risk&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;padding: 10px; border: 1px solid #ddd;&quot;&gt;サンプルに関連するリスクレベル（Low / Medium / High）。&lt;b&gt;【予測ターゲット候補3：多値・順序分類】&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;このデータセットの特徴は、ゴールとなる目的変数を何に設定するかによって、全く異なる予測モデルの検証ができる点にあります。配列データや、あらかじめ計算されている塩基の個数などの特徴量をベースにして、どの予測タスクからアプローチするかを自由に選択できる構造になっています。&lt;/p&gt;
&lt;div style=&quot;text-align: center; margin: 20px auto; max-width: 90%; font-size: 1.1em; font-weight: bold; color: #d9534f; border: 2px solid #d9534f; padding: 12px 15px; border-radius: 5px; box-sizing: border-box; line-height: 1.5;&quot;&gt;複数の予測タスク：&lt;br style=&quot;display: none;&quot; class=&quot;sp-br&quot; /&gt;生物種分類（Class_Label） / 変異判定（Mutation_Flag） / リスク予測（Disease_Risk）&lt;/div&gt;
&lt;p&gt;配列のゆらぎや塩基の統計的特徴を組み合わせることで、それぞれのターゲットに対してLightGBMがどのように境界線を学習するのか、切り口を変えて複数の検証を回せるデータ構成となっています。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 今後の流れ&lt;/h3&gt;
&lt;p&gt;あらかじめ塩基の個数や割合といった数値の特徴量が豊富に用意されているため、生の文字列（Sequence）を加工しなくても、初期の数値データだけでLightGBMに投入可能な構造になっています。まずはこの綺麗なデータセットが手元に用意できたので、ここからどのタスクの検証作業に入るかを決定します。&lt;/p&gt;
&lt;hr /&gt;
&lt;p style=&quot;font-style: italic; color: #666;&quot;&gt;次は、これらの予測候補の中から最初のターゲットを決定し、交差検証を回すための前処理を進めていきます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/142/</link> 
    </item>
    <item>
      <title>【DS検定対策】知識の「リサイクル」！転移学習の2大ステップ</title>
      <description>&lt;p&gt;ゼロからAIを育てるのは大変。だから「他のタスクで学んだ基礎知識」を流用する。それが転移学習（Transfer Learning）です。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;転移学習（移転学習）のプロセスに関する次の記述の、[ &amp;nbsp; ] に当てはまる適切な語句の組み合わせはどれでしょうか？&lt;/p&gt;
&lt;p&gt;「転移学習において、移転元での最初の学習は [ &amp;nbsp; A &amp;nbsp; ] と呼ばれ、その獲得した知識（重み）をベースに、移転先（特定のタスク）に合わせて追加で行う学習は [ &amp;nbsp; B &amp;nbsp; ] と呼ばれる。」&lt;/p&gt;
&lt;p&gt;① A：ファインチューニング &amp;nbsp; B：事前学習&lt;br /&gt;
② A：事前学習 &amp;nbsp; B：ファインチューニング&lt;br /&gt;
③ A：アンサンブル学習 &amp;nbsp; B：蒸留&lt;br /&gt;
④ A：データ拡張 &amp;nbsp; B：正規化&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② A：事前学習 &amp;nbsp; B：ファインチューニング&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：移転元と移転先の「役割分担」&lt;/h3&gt;
&lt;p&gt;この2つのステップを、人間の学習に例えて整理してみましょう。&lt;/p&gt;
&lt;p&gt;【 転移学習のステップ 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;・&lt;b&gt;移転元： [ 事前学習 ] （義務教育）&lt;/b&gt;&lt;br /&gt;
　大量の一般的なデータを使って、基礎的な「特徴の掴み方」を幅広く学ぶ。&lt;br /&gt;
　（例：画像認識なら、膨大な写真から「輪郭」や「色」の概念を理解する）&lt;br /&gt;
&lt;br /&gt;
・&lt;b&gt;移転先： [ ファインチューニング ] （専門教育）&lt;/b&gt;&lt;br /&gt;
　事前学習済みのモデル（知識）を引き継ぎ、解きたい特定のタスク用の少量のデータで微調整する。&lt;br /&gt;
　（例：医療画像から「特定の病変」を見つける専用AIに仕上げる）&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
◎ &lt;b&gt;このアプローチの利点：&lt;/b&gt;&lt;br /&gt;
移転先で用意するデータが少量であっても、事前学習で培った「基礎体力」があるため、高精度なモデルを短時間で開発できます。&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. 覚えておきたい周辺用語&lt;/h3&gt;
&lt;p&gt;1. &lt;b&gt;特徴量抽出（Feature Extraction）&lt;/b&gt;: 事前学習済みモデルの「重み」を一切変えず（フリーズさせ）、出力層の直前のデータを特徴量として別の機械学習モデル（SVMなど）に投入する手法。ファインチューニングと並ぶ転移学習の代表例です。&lt;br /&gt;
2. &lt;b&gt;負の転移（Negative Transfer）&lt;/b&gt;: 移転元のタスクと移転先のタスクが違いすぎる（例：テキスト学習の知識を株価予測に使うなど）ために、かえって精度が下がってしまう現象。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：転移学習において、ファインチューニングを行う際、事前学習で得られたモデルの初期層（入力に近い層）のパラメーター（重み）を変更しないように固定する操作を何と呼ぶか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① ドロップアウト &amp;nbsp; ② 標準化 &amp;nbsp; ③ フリーズ（凍結） &amp;nbsp; ④ 正則化&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ③ 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; 一般的な特徴（エッジや色の変化など）を捉える初期層の知識はそのまま流用した方が効率が良いため、重みを変化させないように「フリーズ」させることがよくあります。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「移転元での学習 ＝ 事前学習」「移転先での学習 ＝ ファインチューニング」という組み合わせは、ディープラーニング全般（画像・自然言語処理）を支える大前提の知識です。それぞれの目的の違いをしっかりと頭に入れておきましょう！&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/141/</link> 
    </item>
    <item>
      <title>【DS検定対策】指示に従う「汎用AI」を作る！インストラクションチューニング</title>
      <description>&lt;p&gt;特定の専門分野に特化するのではなく、「人間のあらゆる『指示（命令）』に正しく従う能力」そのものを高める学習手法。それがインストラクションチューニングです。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;大規模言語モデル（LLM）において、教師付きファインチューニング（SFT）の枠組みを用いながら、特定のタスクやドメインに限定せず、多種多様な「指示（命令）と回答」のペアを学習させることで、未知のタスクに対する汎用的な追従能力を高める手法を何と呼ぶでしょうか？&lt;/p&gt;
&lt;p&gt;① コンテキスト学習（In-Context Learning）&lt;br /&gt;
② インストラクションチューニング&lt;br /&gt;
③ 継続事前学習（Continual Pre-training）&lt;br /&gt;
④ 報酬モデル学習&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② インストラクションチューニング&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：「特化型ファインチューニング」との違い&lt;/h3&gt;
&lt;p&gt;従来のファインチューニングと、インストラクションチューニングでは、目指すゴールが異なります。&lt;/p&gt;
&lt;p&gt;【 アプローチの比較 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;・&lt;b&gt;従来のファインチューニング（特化型）&lt;/b&gt;&lt;br /&gt;
　特定のタスク（例：感情分析のデータだけ）を大量に学習。&lt;br /&gt;
　&amp;rArr; 感情分析は超得意になるが、他のことはできなくなる。&lt;br /&gt;
&lt;br /&gt;
・&lt;b&gt;インストラクションチューニング（汎用型）&lt;/b&gt;&lt;br /&gt;
　「〜を要約して」「〜のコードを書いて」「〜を英語にして」など、異なる形式の指示を数万〜数十万パターン同時に学習。&lt;br /&gt;
　&amp;rArr; &lt;b&gt;「指示文の意図を汲み取る力」&lt;/b&gt;が鍛えられるため、学習していない新しい指示を出されても柔軟に対応できるようになります。&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. なぜこれが重要なのか？&lt;/h3&gt;
&lt;p&gt;1. &lt;b&gt;ゼロショット学習能力の向上&lt;/b&gt;: 事前にやり方の例（Few-shot）を提示しなくても、プロンプトで「〜してください」と指示するだけで、一発でタスクをこなせる（Zero-shot）ようになります。&lt;br /&gt;
2. &lt;b&gt;LLMの製品化に不可欠&lt;/b&gt;: ChatGPTやClaudeなどのチャットAIが、ユーザーのどんな無茶振りにもそれっぽく答えてくれるのは、このチューニングが施されているおかげです。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：インストラクションチューニングを行う際、モデルに与えるデータセットの構成として最も適切なものはどれか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① 単語とその意味が対になった辞書データ&lt;br /&gt;
② インターネットからスクレイピングした生のWebテキスト&lt;br /&gt;
③ 多種多様なタスクに対する「指示文」と「その模範回答」のペア&lt;br /&gt;
④ ユーザーのクリック履歴や購入履歴のログ&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ③ 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; 「指示（Instruction）」とその「応答（Response）」のペアが並んだデータセットを使用します。これにより、AIは「命令の型」を学習します。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「教師付きファインチューニングの中で」「特定のタスクに特化せず能力を高める」という表現が出たら「インストラクションチューニング」です。LLMがこれほど便利に使えるようになった歴史的ブレイクスルーの一つとして、しっかり押さえておきましょう！&lt;/p&gt;
&lt;br /&gt;
&lt;br /&gt;
</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/140/</link> 
    </item>
    <item>
      <title>【DS検定対策】AIに「対話の作法」を教え込む！教師付きファインチューニング（SFT）</title>
      <description>&lt;p&gt;インターネット全体の知識を詰め込んだだけのAIに、「質問されたら、正しい指示に従って回答する」という対話能力を身につけさせるプロセス、それがSFTです。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;大規模言語モデル（LLM）の学習において、事前学習済みのモデルに対して、特定のタスク（要約、翻訳、対話など）や望ましい出力を学習させるため、人間が作成した高品質な「指示と正解のペア（プロンプトとレスポンス）」を用いて追加学習を行う手法を何と呼ぶでしょうか？&lt;/p&gt;
&lt;p&gt;① 事前学習（Pre-training）&lt;br /&gt;
② 教師付きファインチューニング（SFT）&lt;br /&gt;
③ 報酬モデルの学習&lt;br /&gt;
④ 知識留（Distillation）&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② 教師付きファインチューニング（SFT）&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：LLMが「アシスタント」になるまでの2段階&lt;/h3&gt;
&lt;p&gt;生成AI（ChatGPTなど）が使えるようになるまでには、大きな2つの学習ステップがあります。&lt;/p&gt;
&lt;p&gt;【 事前学習とSFTの違い 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;・&lt;b&gt;ステップ1：事前学習（巨大な燃料）&lt;/b&gt;&lt;br /&gt;
　ウェブ上の膨大なテキストを読み込み、「次に来る単語を予測する」能力だけを鍛える。&lt;br /&gt;
　例：「日本の首都は」&amp;rarr;「東京です」だけでなく「どこでしょう？」と勝手に問題を作ってしまうことも。&lt;br /&gt;
&lt;br /&gt;
・&lt;b&gt;ステップ2：SFT（対話の型を教える）&lt;/b&gt;&lt;br /&gt;
　人間が作った「模範解答」を読ませて、指示に従う態度を学ばせる。&lt;br /&gt;
　データ例：&lt;br /&gt;
　[指示] 日本の首都を教えてください。&lt;br /&gt;
　[正解] 日本の首都は東京です。&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
◎ &lt;b&gt;ポイント：&lt;/b&gt;&lt;br /&gt;
SFTを行うことで、AIは単なる「文章の続きを予測する機械」から、私たちの「有能なアシスタント（Instruction-tunedモデル）」へと進化します。&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. SFTの特徴と課題&lt;/h3&gt;
&lt;p&gt;1. &lt;b&gt;高品質なデータが必要&lt;/b&gt;: データの「量」よりも、人間が丁寧に作った「質（正確性や丁寧さ）」がモデルの賢さを左右します。&lt;br /&gt;
2. &lt;b&gt;コストの壁&lt;/b&gt;: 人間（アノテーター）が大量の指示文と模範解答をゼロから作成するため、人件費と時間が非常にかかります。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：大規模言語モデル（LLM）のチューニングにおいて、SFT（教師付きファインチューニング）の次に行われる、人間の好みにさらに近づけるための強化学習手法はどれか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① RAG &amp;nbsp; ② CNN &amp;nbsp; ③ RLHF &amp;nbsp; ④ BERT&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ③ 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; SFTで「対話の基本形」を学んだAIに対して、さらに「人間にとってどれがより心地よい回答か」を微調整するのが、以前学んだ「RLHF」です。この順番（事前学習 &amp;rarr; SFT &amp;rarr; RLHF）はセットで頻出です。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「事前学習済みモデルに足して」「人間が作成した正解応答や指示に従い学習させる」という記述が出たら「教師付きファインチューニング（SFT）」です。チャットAI開発の根幹をなすプロセスとして、確実に理解しておきましょう！&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/139/</link> 
    </item>
    <item>
      <title>【DS検定対策】少ないデータで過学習を防ぐ！「データ拡張」の手法</title>
      <description>&lt;p&gt;AIの学習には大量のデータが必要ですが、現実には十分なデータが集まらないことも。そんな時にデータを賢く「水増し」するのがデータ拡張です。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;機械学習（特に深層学習）において、手元にある限られた教師データを加工・変形（回転、反転、拡大縮小など）することで、実質的にデータの種類や量を増やし、過学習を防ぐ手法を何と呼ぶでしょうか？&lt;/p&gt;
&lt;p&gt;① データリーケージ&lt;br /&gt;
② データ拡張（データオーグメンテーション）&lt;br /&gt;
③ アンサンブル学習&lt;br /&gt;
④ 次元圧縮&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② データ拡張（データオーグメンテーション）&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：画像認識における代表的な「水増し」手法&lt;/h3&gt;
&lt;p&gt;データ拡張は、元のデータが持つ「答え（ラベル）」を変えずに、見た目だけを変化させるのがポイントです。&lt;/p&gt;
&lt;p&gt;【 よく使われる加工パターンの例 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;・&lt;b&gt;幾何学的変換&lt;/b&gt;：&lt;br /&gt;
　左右反転（フリップ）、回転、拡大・縮小、トリミング（切り抜き）&lt;br /&gt;
&lt;br /&gt;
・&lt;b&gt;色調変換&lt;/b&gt;：&lt;br /&gt;
　明るさの変更、コントラストの調整、ノイズの追加&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
★ &lt;b&gt;なぜこれで精度が上がるのか？&lt;/b&gt;&lt;br /&gt;
AIに「横を向いた猫」や「少し暗い場所にいる猫」の画像も同時に学習させることで、カメラの角度や照明条件が変わっても正しく認識できる&lt;b&gt;「頑健（ロバスト）なモデル」&lt;/b&gt;に育つためです。&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. データ拡張の注意点（ドメイン知識の重要性）&lt;/h3&gt;
&lt;p&gt;何でもかんでも変形すれば良いわけではありません。データの本質（意味）を壊さない加工を選ぶ必要があります。&lt;br /&gt;
（例）手書き数字の「6」を180度回転させると「9」になってしまい、正解ラベルが変わってしまうため、数字認識での大幅な回転は不適切となります。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：2つの異なる画像（例えば犬と猫）を、ある割合で不透明度を変えて重ね合わせ、ラベルもその割合に応じてブレンド（例：犬0.5、猫0.5）する、ユニークなデータ拡張手法を何と呼ぶか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① Dropout &amp;nbsp; ② Batch Normalization &amp;nbsp; ③ Mixup &amp;nbsp; ④ Data Cleansing&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ③ 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; 画像同士を混ぜ合わせるデータ拡張手法を「Mixup」と呼びます。モデルの決定境界が滑らかになり、未知のデータに対して過剰に自信を持った誤判定をするのを防ぐ効果があります。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「データの水増し」「既存のデータを変形して生成」という記述が出たら「データ拡張」です。過学習（過剰適合）を防ぐための強力な前処理テクニックとして、その目的と具体的な加工方法を覚えておきましょう！&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/138/</link> 
    </item>
    <item>
      <title>【DS検定対策】AIの表現力を高める工夫！「派生変数」の作り方</title>
      <description>&lt;p&gt;元のデータをそのままAIに投入するのではなく、組み合わせて「新しい意味を持つ変数」を作る。これが特徴量エンジニアリングの基本である派生変数です。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;データ分析の前処理（特徴量エンジニアリング）において、既存の複数の変数（特徴量）を組み合わせたり、計算処理を行ったりすることで新しく導出される変数のことを何と呼ぶでしょうか？&lt;/p&gt;
&lt;p&gt;① 目的変数&lt;br /&gt;
② 派生変数（派生特徴量）&lt;br /&gt;
③ ダミー変数&lt;br /&gt;
④ 潜在変数&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② 派生変数（派生特徴量）&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：なぜ「計算してわざわざ増やす」のか？&lt;/h3&gt;
&lt;p&gt;元のデータ（生データ）だけでは、AIがその本質的な関係性を学習するのに膨大な時間がかかる（あるいは学習できない）ことがあります。あらかじめ人間が計算してあげることで、モデルの予測精度が大きく向上します。&lt;/p&gt;
&lt;p&gt;【 よくある派生変数の具体例 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;・&lt;b&gt;「身長」と「体重」から導出&lt;/b&gt;&lt;br /&gt;
　&amp;rarr; BMI ＝ 体重(kg) &amp;divide; 身長(m)の2乗&lt;br /&gt;
&lt;br /&gt;
・&lt;b&gt;「売上額」と「客数」から導出&lt;/b&gt;&lt;br /&gt;
　&amp;rarr; 客単価 ＝ 売上額 &amp;divide; 客数&lt;br /&gt;
&lt;br /&gt;
・&lt;b&gt;「生年月日」から導出&lt;/b&gt;&lt;br /&gt;
　&amp;rarr; 現在の年齢、生まれた曜日、星座など&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
◎ &lt;b&gt;ポイント：&lt;/b&gt; ドメイン知識（業務知識）を活かして、「どんな派生変数を作るか」がデータサイエンティストの腕の見せ所になります。&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. 派生変数を作る際の注意点&lt;/h3&gt;
&lt;p&gt;1. &lt;b&gt;多重共線性（マルチコ）&lt;/b&gt;: 元の変数と派生変数の間で強い相関が生まれるため、線形回帰など一部のモデルでは計算が不安定になる原因になります。&lt;br /&gt;
2. &lt;b&gt;データリーケージ（情報の漏洩）&lt;/b&gt;: 未来のデータを使って派生変数を作ってしまうと、予測モデルが不正解をカンニングした状態になってしまうため注意が必要です。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：派生変数の一種で、カテゴリ変数（「東京」「大阪」など）を機械学習モデルが処理できるように、0と1だけで表した変数のことを何と呼ぶか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① 目的変数 &amp;nbsp; ② 説明変数 &amp;nbsp; ③ ダミー変数 &amp;nbsp; ④ 連続変数&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ③ 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; カテゴリをフラグ化（One-Hotエンコーディング）したものは「ダミー変数」と呼ばれ、これも立派な派生変数の一種です。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「他の変数から導出できる変数」「組み合わせて作る特徴量」という記述が出たら「派生変数」です。データの組み合わせによって、AIに新しい視点を提供する技術として押さえておきましょう！&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/137/</link> 
    </item>
    <item>
      <title>【Python】SymPyで極限（limit）を求める！1/x の 0 への接近</title>
      <description>&lt;p&gt;関数の値がどこまで近づくかを計算する「極限（limit）」。PythonのSymPyライブラリを使うと、単純な数値代入ではエラー（ゼロ除算）になってしまう $f(x) = 1/x$ のようなケースも、数学的な極限として正しく処理できます。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. limit関数のポイント：近づく「方向」&lt;/h3&gt;
&lt;p&gt;関数 $f(x) = 1/x$ は、0に近づくときに「右側（正の数）」から近づくか、「左側（負の数）」から近づくかで結果が異なります。SymPyでは引数 &lt;code&gt;dir&lt;/code&gt; を使ってこの方向を指定します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;dir='+'&lt;/b&gt;：右側極限（0.1, 0.01...と正の側から接近）&lt;/li&gt;
&lt;li&gt;&lt;b&gt;dir='-'&lt;/b&gt;：左側極限（-0.1, -0.01...と負の側から接近）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;2. Pythonサンプルプログラム&lt;/h3&gt;
&lt;p&gt;特別な設定をせず、標準的な &lt;code&gt;print&lt;/code&gt; 関数を使って結果を出力します。&lt;/p&gt;
&lt;pre style=&quot;background-color: #f5f5f5; color: #333; padding: 15px; border-radius: 5px; border: 1px solid #ddd; overflow-x: auto; font-family: Consolas, Monaco, 'Courier New', monospace;&quot;&gt;# -*- coding: utf-8 -*-
from sympy import symbols, limit

def main():
    # 変数xを定義
    x = symbols('x')
    
    # 関数 f(x) = 1/x の定義
    f = 1 / x

    # 右側極限 (x -&amp;gt; 0+)
    limit_right = limit(f, x, 0, dir='+')

    # 左側極限 (x -&amp;gt; 0-)
    limit_left = limit(f, x, 0, dir='-')

    print(&quot;--- f(x) = 1/x の極限計算 ---&quot;)
    print(f&quot;x -&amp;gt; 0+ (右側極限): {limit_right}&quot;)
    print(f&quot;x -&amp;gt; 0- (左側極限): {limit_left}&quot;)

if __name__ == &quot;__main__&quot;:
    main()
&lt;/pre&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 実行結果&lt;/h3&gt;
&lt;p&gt;実行すると、以下のような結果が得られます。SymPyでは無限大（$\infty$）を &lt;b&gt;oo&lt;/b&gt;（小文字のoが2つ）で表現します。&lt;/p&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 1px solid #333; padding: 15px; font-family: 'Courier New', Courier, monospace; color: #000; line-height: 1.5;&quot;&gt;--- f(x) = 1/x の極限計算 ---&lt;br /&gt;
x -&amp;gt; 0+ (右側極限): oo&lt;br /&gt;
x -&amp;gt; 0- (左側極限): -oo&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. まとめ&lt;/h3&gt;
&lt;p&gt;結果にある &lt;code&gt;oo&lt;/code&gt; は正の無限大、&lt;code&gt;-oo&lt;/code&gt; は負の無限大を意味しています。右から近づけばプラス無限に、左から近づけばマイナス無限に発散するという数学的な挙動が、たった数行のコードで確認できました。ゼロ除算エラーを気にせず数学的検証ができるSymPyは、エンジニアにとっても強力な武器になりますね。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/136/</link> 
    </item>
    <item>
      <title>【Python】SymPyで偏微分をマスター！多変数関数の計算結果をコード形式で出力する</title>
      <description>&lt;p&gt;Pythonの強力な数式処理ライブラリ「SymPy」を使って、多変数関数 $f(x, y) = x^2 + 3 + y^4 + 5$ の偏微分を計算する方法を解説します。今回は、計算結果をそのままプログラムに再利用しやすい「標準出力形式」で表示します。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 偏微分のルール&lt;/h3&gt;
&lt;p&gt;偏微分とは、特定の変数だけに注目して微分し、それ以外の変数はすべて「定数（ただの数字）」として扱う計算です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;xで偏微分&lt;/b&gt;：x^2を微分して &lt;b&gt;2*x&lt;/b&gt; となり、それ以外の $y^4$ や定数は消えます。&lt;/li&gt;
&lt;li&gt;&lt;b&gt;yで偏微分&lt;/b&gt;：y^4 を微分して &lt;b&gt;4*y**3&lt;/b&gt; となり、それ以外の $x^2$ や定数は消えます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;2. Pythonサンプルプログラム&lt;/h3&gt;
&lt;p&gt;余計な装飾設定を省き、標準の &lt;code&gt;print()&lt;/code&gt; 関数で結果を出力するシンプルな構成です。&lt;/p&gt;
&lt;pre style=&quot;background-color: #f5f5f5; color: #333; padding: 15px; border-radius: 5px; border: 1px solid #ddd; overflow-x: auto; font-family: Consolas, Monaco, 'Courier New', monospace;&quot;&gt;# -*- coding: utf-8 -*-
from sympy import symbols, diff

def main():
    # 1. 変数x, yを記号として定義
    x, y = symbols('x y')

    # 2. 関数の定義 f(x, y) = x^2 + 3 + y^4 + 5
    f = x**2 + 3 + y**4 + 5

    # 3. xおよびyで偏微分を実行
    df_dx = diff(f, x)
    df_dy = diff(f, y)

    # 4. 結果を表示
    print(&quot;--- xでの偏微分結果 ---&quot;)
    print(df_dx)
    
    print(&quot;\n--- yでの偏微分結果 ---&quot;)
    print(df_dy)

if __name__ == &quot;__main__&quot;:
    main()
&lt;/pre&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 実際の実行結果&lt;/h3&gt;
&lt;p&gt;このコードを実行すると、コンソールには以下のように出力されます。&lt;code&gt;*&lt;/code&gt;（掛け算）や &lt;code&gt;**&lt;/code&gt;（累乗）がそのまま表示されるため、エンジニアにとって非常に直感的です。&lt;/p&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 1px solid #333; padding: 15px; font-family: 'Courier New', Courier, monospace; color: #000; line-height: 1.5;&quot;&gt;--- xでの偏微分結果 ---&lt;br /&gt;
2*x&lt;br /&gt;
&lt;br /&gt;
--- yでの偏微分結果 ---&lt;br /&gt;
4*y**3&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. まとめ&lt;/h3&gt;
&lt;p&gt;SymPyのデフォルト出力は、Pythonのコードとしてそのまま通用する形式です。複雑な数式も、この形式で出力すればロジックの確認や他のスクリプトへの移植がスムーズに行えます。見た目の美しさよりも「実用性」を重視する場面では、この標準出力が最も頼りになります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/135/</link> 
    </item>
    <item>
      <title>【DS検定対策】「中身」で勝負！コンテンツベースフィルタリングの仕組み</title>
      <description>&lt;p&gt;「この映画のアクションシーンが好きなら、こっちのアクション映画もどう？」アイテムの特徴そのものに注目するのが、コンテンツベースフィルタリングです。&lt;/p&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;1. 【 問題 】&lt;/h3&gt;
&lt;p&gt;レコメンドシステムにおいて、アイテムのジャンル、テキスト説明、メタデータなどの属性情報を分析し、ユーザーが過去に好んだアイテムと特徴が類似したアイテムを推薦する手法を何と呼ぶでしょうか？&lt;/p&gt;
&lt;p&gt;① 協調フィルタリング&lt;br /&gt;
② 内容ベース（コンテンツベース）フィルタリング&lt;br /&gt;
③ 相関分析&lt;br /&gt;
④ クラスター分析&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: #d32f2f;&quot;&gt;2. 【 解答 】&lt;/h3&gt;
&lt;div style=&quot;background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;&quot;&gt;正解： ② 内容ベース（コンテンツベース）フィルタリング&lt;/div&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;3. 整理：アイテムの「プロフィール」を比較する&lt;/h3&gt;
&lt;p&gt;この手法では、まず各アイテムを「特徴ベクトル」として表現します。&lt;/p&gt;
&lt;p&gt;【 コンテンツベースの流れ 】&lt;/p&gt;
&lt;div style=&quot;font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;&quot;&gt;[ 1. アイテムの属性抽出 ]&lt;br /&gt;
映画A：[ジャンル:SF, 監督:〇〇, 主演:△△]&lt;br /&gt;
映画B：[ジャンル:SF, 監督:&amp;times;&amp;times;, 主演:△△]&lt;br /&gt;
&lt;br /&gt;
[ 2. ユーザープロファイルの作成 ]&lt;br /&gt;
ユーザーが過去に見た映画から、「この人は『SF』と『主演:△△』を好む」という傾向を数値化する。&lt;br /&gt;
&lt;br /&gt;
[ 3. 類似度の計算 ]&lt;br /&gt;
ユーザーの好みと、未視聴のアイテムの「属性」がどれだけ近いかを計算し、高い順に勧める。&lt;br /&gt;
&lt;br /&gt;
--------------------------&lt;br /&gt;
&lt;br /&gt;
◎ &lt;b&gt;メリット：&lt;/b&gt; 他のユーザーのデータが不要なため、新商品（誰も買っていないもの）でも特徴さえ分かればレコメンド可能です！&lt;/div&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;4. 協調フィルタリングとの比較（ここが試験に出る！）&lt;/h3&gt;
&lt;table border=&quot;1&quot; style=&quot;border-collapse: collapse; width: 100%; text-align: center;&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;background-color: #f2f2f2;&quot;&gt;&lt;th&gt;手法&lt;/th&gt;&lt;th&gt;注目するデータ&lt;/th&gt;&lt;th&gt;新商品への対応&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;協調&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;他人の購入履歴&lt;/td&gt;
&lt;td&gt;苦手（データがないため）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;コンテンツ&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;アイテムの属性&lt;/td&gt;
&lt;td&gt;&lt;b&gt;得意&lt;/b&gt;（属性で判断できる）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: orange;&quot;&gt;5. DS検定形式：実戦4択クイズ&lt;/h3&gt;
&lt;p&gt;&lt;b&gt;問：コンテンツベースフィルタリングの弱点として、ユーザーの過去の好みに似たものばかりが選ばれ、意外性のある提案ができなくなる現象を何と呼ぶか。&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;① コールドスタート問題 &amp;nbsp; ② オーバーフィッティング &amp;nbsp; ③ フィルターバブル &amp;nbsp; ④ 勾配消失&lt;/p&gt;
&lt;p&gt;&lt;b&gt;【 正解： ③ 】&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;解説：&lt;/b&gt; 自分の好きなジャンルばかりに囲まれてしまい、新しいジャンルに出会えなくなることを「フィルターバブル（またはセレンディピティの欠如）」と呼びます。&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 style=&quot;color: blue;&quot;&gt;6. まとめ&lt;/h3&gt;
&lt;p&gt;DS検定において「アイテムの属性」「特徴の類似」というキーワードが出たら「コンテンツベース」です。協調フィルタリングが「他人の行動」を見るのに対し、こちらは「アイテムの中身」を見る、という違いを明確にしておきましょう！&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/p&gt;</description> 
      <link>http://learnms.blog.shinobi.jp/Entry/134/</link> 
    </item>

  </channel>
</rss>