<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" >
  <channel>
  <title>いけいけ機械学習</title>
  <link>http://learnms.blog.shinobi.jp/</link>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://learnms.blog.shinobi.jp/RSS/" />
  <description>統計、機械学習、AIを学んでいきたいと思います。 お役に立てば幸いです。</description>
  <lastBuildDate>Sun, 17 May 2026 05:11:20 GMT</lastBuildDate>
  <language>ja</language>
  <copyright>© Ninja Tools Inc.</copyright>
  <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" />

    <item>
    <title>【DS検定対策】知識の「リサイクル」！転移学習の2大ステップ</title>
    <description>
    <![CDATA[<p>ゼロからAIを育てるのは大変。だから「他のタスクで学んだ基礎知識」を流用する。それが転移学習（Transfer Learning）です。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>転移学習（移転学習）のプロセスに関する次の記述の、[ &nbsp; ] に当てはまる適切な語句の組み合わせはどれでしょうか？</p>
<p>「転移学習において、移転元での最初の学習は [ &nbsp; A &nbsp; ] と呼ばれ、その獲得した知識（重み）をベースに、移転先（特定のタスク）に合わせて追加で行う学習は [ &nbsp; B &nbsp; ] と呼ばれる。」</p>
<p>① A：ファインチューニング &nbsp; B：事前学習<br />
② A：事前学習 &nbsp; B：ファインチューニング<br />
③ A：アンサンブル学習 &nbsp; B：蒸留<br />
④ A：データ拡張 &nbsp; B：正規化</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② A：事前学習 &nbsp; B：ファインチューニング</div>
<hr />
<h3 style="color: blue;">3. 整理：移転元と移転先の「役割分担」</h3>
<p>この2つのステップを、人間の学習に例えて整理してみましょう。</p>
<p>【 転移学習のステップ 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">・<b>移転元： [ 事前学習 ] （義務教育）</b><br />
　大量の一般的なデータを使って、基礎的な「特徴の掴み方」を幅広く学ぶ。<br />
　（例：画像認識なら、膨大な写真から「輪郭」や「色」の概念を理解する）<br />
<br />
・<b>移転先： [ ファインチューニング ] （専門教育）</b><br />
　事前学習済みのモデル（知識）を引き継ぎ、解きたい特定のタスク用の少量のデータで微調整する。<br />
　（例：医療画像から「特定の病変」を見つける専用AIに仕上げる）<br />
<br />
--------------------------<br />
<br />
◎ <b>このアプローチの利点：</b><br />
移転先で用意するデータが少量であっても、事前学習で培った「基礎体力」があるため、高精度なモデルを短時間で開発できます。</div>
<h3 style="color: blue;">4. 覚えておきたい周辺用語</h3>
<p>1. <b>特徴量抽出（Feature Extraction）</b>: 事前学習済みモデルの「重み」を一切変えず（フリーズさせ）、出力層の直前のデータを特徴量として別の機械学習モデル（SVMなど）に投入する手法。ファインチューニングと並ぶ転移学習の代表例です。<br />
2. <b>負の転移（Negative Transfer）</b>: 移転元のタスクと移転先のタスクが違いすぎる（例：テキスト学習の知識を株価予測に使うなど）ために、かえって精度が下がってしまう現象。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：転移学習において、ファインチューニングを行う際、事前学習で得られたモデルの初期層（入力に近い層）のパラメーター（重み）を変更しないように固定する操作を何と呼ぶか。</b></p>
<p>① ドロップアウト &nbsp; ② 標準化 &nbsp; ③ フリーズ（凍結） &nbsp; ④ 正則化</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> 一般的な特徴（エッジや色の変化など）を捉える初期層の知識はそのまま流用した方が効率が良いため、重みを変化させないように「フリーズ」させることがよくあります。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「移転元での学習 ＝ 事前学習」「移転先での学習 ＝ ファインチューニング」という組み合わせは、ディープラーニング全般（画像・自然言語処理）を支える大前提の知識です。それぞれの目的の違いをしっかりと頭に入れておきましょう！</p>]]>
    </description>
    <category>DS検定＞1-4-2.言語モデル</category>
    <link>http://learnms.blog.shinobi.jp/Entry/141/</link>
    <pubDate>Sun, 17 May 2026 05:11:20 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/141</guid>
  </item>
    <item>
    <title>【DS検定対策】指示に従う「汎用AI」を作る！インストラクションチューニング</title>
    <description>
    <![CDATA[<p>特定の専門分野に特化するのではなく、「人間のあらゆる『指示（命令）』に正しく従う能力」そのものを高める学習手法。それがインストラクションチューニングです。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>大規模言語モデル（LLM）において、教師付きファインチューニング（SFT）の枠組みを用いながら、特定のタスクやドメインに限定せず、多種多様な「指示（命令）と回答」のペアを学習させることで、未知のタスクに対する汎用的な追従能力を高める手法を何と呼ぶでしょうか？</p>
<p>① コンテキスト学習（In-Context Learning）<br />
② インストラクションチューニング<br />
③ 継続事前学習（Continual Pre-training）<br />
④ 報酬モデル学習</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② インストラクションチューニング</div>
<hr />
<h3 style="color: blue;">3. 整理：「特化型ファインチューニング」との違い</h3>
<p>従来のファインチューニングと、インストラクションチューニングでは、目指すゴールが異なります。</p>
<p>【 アプローチの比較 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">・<b>従来のファインチューニング（特化型）</b><br />
　特定のタスク（例：感情分析のデータだけ）を大量に学習。<br />
　&rArr; 感情分析は超得意になるが、他のことはできなくなる。<br />
<br />
・<b>インストラクションチューニング（汎用型）</b><br />
　「〜を要約して」「〜のコードを書いて」「〜を英語にして」など、異なる形式の指示を数万〜数十万パターン同時に学習。<br />
　&rArr; <b>「指示文の意図を汲み取る力」</b>が鍛えられるため、学習していない新しい指示を出されても柔軟に対応できるようになります。</div>
<h3 style="color: blue;">4. なぜこれが重要なのか？</h3>
<p>1. <b>ゼロショット学習能力の向上</b>: 事前にやり方の例（Few-shot）を提示しなくても、プロンプトで「〜してください」と指示するだけで、一発でタスクをこなせる（Zero-shot）ようになります。<br />
2. <b>LLMの製品化に不可欠</b>: ChatGPTやClaudeなどのチャットAIが、ユーザーのどんな無茶振りにもそれっぽく答えてくれるのは、このチューニングが施されているおかげです。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：インストラクションチューニングを行う際、モデルに与えるデータセットの構成として最も適切なものはどれか。</b></p>
<p>① 単語とその意味が対になった辞書データ<br />
② インターネットからスクレイピングした生のWebテキスト<br />
③ 多種多様なタスクに対する「指示文」と「その模範回答」のペア<br />
④ ユーザーのクリック履歴や購入履歴のログ</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> 「指示（Instruction）」とその「応答（Response）」のペアが並んだデータセットを使用します。これにより、AIは「命令の型」を学習します。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「教師付きファインチューニングの中で」「特定のタスクに特化せず能力を高める」という表現が出たら「インストラクションチューニング」です。LLMがこれほど便利に使えるようになった歴史的ブレイクスルーの一つとして、しっかり押さえておきましょう！</p>
<br />
<br />
]]>
    </description>
    <category>DS検定＞1-4-2.言語モデル</category>
    <link>http://learnms.blog.shinobi.jp/Entry/140/</link>
    <pubDate>Sun, 17 May 2026 05:05:34 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/140</guid>
  </item>
    <item>
    <title>【DS検定対策】AIに「対話の作法」を教え込む！教師付きファインチューニング（SFT）</title>
    <description>
    <![CDATA[<p>インターネット全体の知識を詰め込んだだけのAIに、「質問されたら、正しい指示に従って回答する」という対話能力を身につけさせるプロセス、それがSFTです。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>大規模言語モデル（LLM）の学習において、事前学習済みのモデルに対して、特定のタスク（要約、翻訳、対話など）や望ましい出力を学習させるため、人間が作成した高品質な「指示と正解のペア（プロンプトとレスポンス）」を用いて追加学習を行う手法を何と呼ぶでしょうか？</p>
<p>① 事前学習（Pre-training）<br />
② 教師付きファインチューニング（SFT）<br />
③ 報酬モデルの学習<br />
④ 知識留（Distillation）</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② 教師付きファインチューニング（SFT）</div>
<hr />
<h3 style="color: blue;">3. 整理：LLMが「アシスタント」になるまでの2段階</h3>
<p>生成AI（ChatGPTなど）が使えるようになるまでには、大きな2つの学習ステップがあります。</p>
<p>【 事前学習とSFTの違い 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">・<b>ステップ1：事前学習（巨大な燃料）</b><br />
　ウェブ上の膨大なテキストを読み込み、「次に来る単語を予測する」能力だけを鍛える。<br />
　例：「日本の首都は」&rarr;「東京です」だけでなく「どこでしょう？」と勝手に問題を作ってしまうことも。<br />
<br />
・<b>ステップ2：SFT（対話の型を教える）</b><br />
　人間が作った「模範解答」を読ませて、指示に従う態度を学ばせる。<br />
　データ例：<br />
　[指示] 日本の首都を教えてください。<br />
　[正解] 日本の首都は東京です。<br />
<br />
--------------------------<br />
<br />
◎ <b>ポイント：</b><br />
SFTを行うことで、AIは単なる「文章の続きを予測する機械」から、私たちの「有能なアシスタント（Instruction-tunedモデル）」へと進化します。</div>
<h3 style="color: blue;">4. SFTの特徴と課題</h3>
<p>1. <b>高品質なデータが必要</b>: データの「量」よりも、人間が丁寧に作った「質（正確性や丁寧さ）」がモデルの賢さを左右します。<br />
2. <b>コストの壁</b>: 人間（アノテーター）が大量の指示文と模範解答をゼロから作成するため、人件費と時間が非常にかかります。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：大規模言語モデル（LLM）のチューニングにおいて、SFT（教師付きファインチューニング）の次に行われる、人間の好みにさらに近づけるための強化学習手法はどれか。</b></p>
<p>① RAG &nbsp; ② CNN &nbsp; ③ RLHF &nbsp; ④ BERT</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> SFTで「対話の基本形」を学んだAIに対して、さらに「人間にとってどれがより心地よい回答か」を微調整するのが、以前学んだ「RLHF」です。この順番（事前学習 &rarr; SFT &rarr; RLHF）はセットで頻出です。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「事前学習済みモデルに足して」「人間が作成した正解応答や指示に従い学習させる」という記述が出たら「教師付きファインチューニング（SFT）」です。チャットAI開発の根幹をなすプロセスとして、確実に理解しておきましょう！</p>]]>
    </description>
    <category>DS検定＞1-4-2.言語モデル</category>
    <link>http://learnms.blog.shinobi.jp/Entry/139/</link>
    <pubDate>Sun, 17 May 2026 05:03:35 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/139</guid>
  </item>
    <item>
    <title>【DS検定対策】少ないデータで過学習を防ぐ！「データ拡張」の手法</title>
    <description>
    <![CDATA[<p>AIの学習には大量のデータが必要ですが、現実には十分なデータが集まらないことも。そんな時にデータを賢く「水増し」するのがデータ拡張です。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>機械学習（特に深層学習）において、手元にある限られた教師データを加工・変形（回転、反転、拡大縮小など）することで、実質的にデータの種類や量を増やし、過学習を防ぐ手法を何と呼ぶでしょうか？</p>
<p>① データリーケージ<br />
② データ拡張（データオーグメンテーション）<br />
③ アンサンブル学習<br />
④ 次元圧縮</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② データ拡張（データオーグメンテーション）</div>
<hr />
<h3 style="color: blue;">3. 整理：画像認識における代表的な「水増し」手法</h3>
<p>データ拡張は、元のデータが持つ「答え（ラベル）」を変えずに、見た目だけを変化させるのがポイントです。</p>
<p>【 よく使われる加工パターンの例 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">・<b>幾何学的変換</b>：<br />
　左右反転（フリップ）、回転、拡大・縮小、トリミング（切り抜き）<br />
<br />
・<b>色調変換</b>：<br />
　明るさの変更、コントラストの調整、ノイズの追加<br />
<br />
--------------------------<br />
<br />
★ <b>なぜこれで精度が上がるのか？</b><br />
AIに「横を向いた猫」や「少し暗い場所にいる猫」の画像も同時に学習させることで、カメラの角度や照明条件が変わっても正しく認識できる<b>「頑健（ロバスト）なモデル」</b>に育つためです。</div>
<h3 style="color: blue;">4. データ拡張の注意点（ドメイン知識の重要性）</h3>
<p>何でもかんでも変形すれば良いわけではありません。データの本質（意味）を壊さない加工を選ぶ必要があります。<br />
（例）手書き数字の「6」を180度回転させると「9」になってしまい、正解ラベルが変わってしまうため、数字認識での大幅な回転は不適切となります。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：2つの異なる画像（例えば犬と猫）を、ある割合で不透明度を変えて重ね合わせ、ラベルもその割合に応じてブレンド（例：犬0.5、猫0.5）する、ユニークなデータ拡張手法を何と呼ぶか。</b></p>
<p>① Dropout &nbsp; ② Batch Normalization &nbsp; ③ Mixup &nbsp; ④ Data Cleansing</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> 画像同士を混ぜ合わせるデータ拡張手法を「Mixup」と呼びます。モデルの決定境界が滑らかになり、未知のデータに対して過剰に自信を持った誤判定をするのを防ぐ効果があります。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「データの水増し」「既存のデータを変形して生成」という記述が出たら「データ拡張」です。過学習（過剰適合）を防ぐための強力な前処理テクニックとして、その目的と具体的な加工方法を覚えておきましょう！</p>]]>
    </description>
    <category>DS検定＞1-2-1. データ把握</category>
    <link>http://learnms.blog.shinobi.jp/Entry/138/</link>
    <pubDate>Sat, 16 May 2026 22:16:44 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/138</guid>
  </item>
    <item>
    <title>【DS検定対策】AIの表現力を高める工夫！「派生変数」の作り方</title>
    <description>
    <![CDATA[<p>元のデータをそのままAIに投入するのではなく、組み合わせて「新しい意味を持つ変数」を作る。これが特徴量エンジニアリングの基本である派生変数です。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>データ分析の前処理（特徴量エンジニアリング）において、既存の複数の変数（特徴量）を組み合わせたり、計算処理を行ったりすることで新しく導出される変数のことを何と呼ぶでしょうか？</p>
<p>① 目的変数<br />
② 派生変数（派生特徴量）<br />
③ ダミー変数<br />
④ 潜在変数</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② 派生変数（派生特徴量）</div>
<hr />
<h3 style="color: blue;">3. 整理：なぜ「計算してわざわざ増やす」のか？</h3>
<p>元のデータ（生データ）だけでは、AIがその本質的な関係性を学習するのに膨大な時間がかかる（あるいは学習できない）ことがあります。あらかじめ人間が計算してあげることで、モデルの予測精度が大きく向上します。</p>
<p>【 よくある派生変数の具体例 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">・<b>「身長」と「体重」から導出</b><br />
　&rarr; BMI ＝ 体重(kg) &divide; 身長(m)の2乗<br />
<br />
・<b>「売上額」と「客数」から導出</b><br />
　&rarr; 客単価 ＝ 売上額 &divide; 客数<br />
<br />
・<b>「生年月日」から導出</b><br />
　&rarr; 現在の年齢、生まれた曜日、星座など<br />
<br />
--------------------------<br />
<br />
◎ <b>ポイント：</b> ドメイン知識（業務知識）を活かして、「どんな派生変数を作るか」がデータサイエンティストの腕の見せ所になります。</div>
<h3 style="color: blue;">4. 派生変数を作る際の注意点</h3>
<p>1. <b>多重共線性（マルチコ）</b>: 元の変数と派生変数の間で強い相関が生まれるため、線形回帰など一部のモデルでは計算が不安定になる原因になります。<br />
2. <b>データリーケージ（情報の漏洩）</b>: 未来のデータを使って派生変数を作ってしまうと、予測モデルが不正解をカンニングした状態になってしまうため注意が必要です。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：派生変数の一種で、カテゴリ変数（「東京」「大阪」など）を機械学習モデルが処理できるように、0と1だけで表した変数のことを何と呼ぶか。</b></p>
<p>① 目的変数 &nbsp; ② 説明変数 &nbsp; ③ ダミー変数 &nbsp; ④ 連続変数</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> カテゴリをフラグ化（One-Hotエンコーディング）したものは「ダミー変数」と呼ばれ、これも立派な派生変数の一種です。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「他の変数から導出できる変数」「組み合わせて作る特徴量」という記述が出たら「派生変数」です。データの組み合わせによって、AIに新しい視点を提供する技術として押さえておきましょう！</p>]]>
    </description>
    <category>DS検定＞1-2-1. データ把握</category>
    <link>http://learnms.blog.shinobi.jp/Entry/137/</link>
    <pubDate>Sat, 16 May 2026 22:12:27 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/137</guid>
  </item>
    <item>
    <title>【Python】SymPyで極限（limit）を求める！1/x の 0 への接近</title>
    <description>
    <![CDATA[<p>関数の値がどこまで近づくかを計算する「極限（limit）」。PythonのSymPyライブラリを使うと、単純な数値代入ではエラー（ゼロ除算）になってしまう $f(x) = 1/x$ のようなケースも、数学的な極限として正しく処理できます。</p>
<h3 style="color: blue;">1. limit関数のポイント：近づく「方向」</h3>
<p>関数 $f(x) = 1/x$ は、0に近づくときに「右側（正の数）」から近づくか、「左側（負の数）」から近づくかで結果が異なります。SymPyでは引数 <code>dir</code> を使ってこの方向を指定します。</p>
<ul>
<li><b>dir='+'</b>：右側極限（0.1, 0.01...と正の側から接近）</li>
<li><b>dir='-'</b>：左側極限（-0.1, -0.01...と負の側から接近）</li>
</ul>
<h3 style="color: blue;">2. Pythonサンプルプログラム</h3>
<p>特別な設定をせず、標準的な <code>print</code> 関数を使って結果を出力します。</p>
<pre style="background-color: #f5f5f5; color: #333; padding: 15px; border-radius: 5px; border: 1px solid #ddd; overflow-x: auto; font-family: Consolas, Monaco, 'Courier New', monospace;"># -*- coding: utf-8 -*-
from sympy import symbols, limit

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

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

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

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

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

if __name__ == "__main__":
    main()
</pre>
<h3 style="color: blue;">3. 実際の実行結果</h3>
<p>このコードを実行すると、コンソールには以下のように出力されます。<code>*</code>（掛け算）や <code>**</code>（累乗）がそのまま表示されるため、エンジニアにとって非常に直感的です。</p>
<div style="background-color: #eeeeee; border: 1px solid #333; padding: 15px; font-family: 'Courier New', Courier, monospace; color: #000; line-height: 1.5;">--- xでの偏微分結果 ---<br />
2*x<br />
<br />
--- yでの偏微分結果 ---<br />
4*y**3</div>
<h3 style="color: blue;">4. まとめ</h3>
<p>SymPyのデフォルト出力は、Pythonのコードとしてそのまま通用する形式です。複雑な数式も、この形式で出力すればロジックの確認や他のスクリプトへの移植がスムーズに行えます。見た目の美しさよりも「実用性」を重視する場面では、この標準出力が最も頼りになります。<br />
<br />
<br />
</p>]]>
    </description>
    <category>実習＞Python</category>
    <link>http://learnms.blog.shinobi.jp/Entry/135/</link>
    <pubDate>Sun, 10 May 2026 00:09:34 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/135</guid>
  </item>
    <item>
    <title>【DS検定対策】「中身」で勝負！コンテンツベースフィルタリングの仕組み</title>
    <description>
    <![CDATA[<p>「この映画のアクションシーンが好きなら、こっちのアクション映画もどう？」アイテムの特徴そのものに注目するのが、コンテンツベースフィルタリングです。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>レコメンドシステムにおいて、アイテムのジャンル、テキスト説明、メタデータなどの属性情報を分析し、ユーザーが過去に好んだアイテムと特徴が類似したアイテムを推薦する手法を何と呼ぶでしょうか？</p>
<p>① 協調フィルタリング<br />
② 内容ベース（コンテンツベース）フィルタリング<br />
③ 相関分析<br />
④ クラスター分析</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② 内容ベース（コンテンツベース）フィルタリング</div>
<hr />
<h3 style="color: blue;">3. 整理：アイテムの「プロフィール」を比較する</h3>
<p>この手法では、まず各アイテムを「特徴ベクトル」として表現します。</p>
<p>【 コンテンツベースの流れ 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">[ 1. アイテムの属性抽出 ]<br />
映画A：[ジャンル:SF, 監督:〇〇, 主演:△△]<br />
映画B：[ジャンル:SF, 監督:&times;&times;, 主演:△△]<br />
<br />
[ 2. ユーザープロファイルの作成 ]<br />
ユーザーが過去に見た映画から、「この人は『SF』と『主演:△△』を好む」という傾向を数値化する。<br />
<br />
[ 3. 類似度の計算 ]<br />
ユーザーの好みと、未視聴のアイテムの「属性」がどれだけ近いかを計算し、高い順に勧める。<br />
<br />
--------------------------<br />
<br />
◎ <b>メリット：</b> 他のユーザーのデータが不要なため、新商品（誰も買っていないもの）でも特徴さえ分かればレコメンド可能です！</div>
<h3 style="color: blue;">4. 協調フィルタリングとの比較（ここが試験に出る！）</h3>
<table border="1" style="border-collapse: collapse; width: 100%; text-align: center;">
<tbody>
<tr style="background-color: #f2f2f2;"><th>手法</th><th>注目するデータ</th><th>新商品への対応</th></tr>
<tr>
<td><b>協調</b></td>
<td>他人の購入履歴</td>
<td>苦手（データがないため）</td>
</tr>
<tr>
<td><b>コンテンツ</b></td>
<td>アイテムの属性</td>
<td><b>得意</b>（属性で判断できる）</td>
</tr>
</tbody>
</table>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：コンテンツベースフィルタリングの弱点として、ユーザーの過去の好みに似たものばかりが選ばれ、意外性のある提案ができなくなる現象を何と呼ぶか。</b></p>
<p>① コールドスタート問題 &nbsp; ② オーバーフィッティング &nbsp; ③ フィルターバブル &nbsp; ④ 勾配消失</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> 自分の好きなジャンルばかりに囲まれてしまい、新しいジャンルに出会えなくなることを「フィルターバブル（またはセレンディピティの欠如）」と呼びます。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「アイテムの属性」「特徴の類似」というキーワードが出たら「コンテンツベース」です。協調フィルタリングが「他人の行動」を見るのに対し、こちらは「アイテムの中身」を見る、という違いを明確にしておきましょう！<br />
<br />
<br />
</p>]]>
    </description>
    <category>DS検定＞1-3-1. 学習モデル</category>
    <link>http://learnms.blog.shinobi.jp/Entry/134/</link>
    <pubDate>Sat, 09 May 2026 22:54:08 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/134</guid>
  </item>
    <item>
    <title>【DS検定対策】好みを予測する！「協調フィルタリング」の仕組み</title>
    <description>
    <![CDATA[<p>「自分と好みが似ているあの人が買ったなら、私も好きかも」。そんな直感を計算式に落とし込んだのが協調フィルタリングです。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>レコメンドシステムにおいて、多くのユーザーの行動履歴（購入、閲覧、評価など）を蓄積し、対象ユーザーと行動パターンが似ている他のユーザーのデータを用いて商品を推奨する手法を何と呼ぶでしょうか？</p>
<p>① コンテンツベースフィルタリング<br />
② 協調フィルタリング<br />
③ 決定木分析<br />
④ 主成分分析</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② 協調フィルタリング</div>
<hr />
<h3 style="color: blue;">3. 整理：2つの主要なアプローチ</h3>
<p>協調フィルタリングには、何を基準に「似ている」と判定するかで2つの形式があります。</p>
<p>【 協調フィルタリングの分類 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">[ 1. ユーザーベース ]<br />
あなたと「購買履歴が似ているAさん」を探し、Aさんが買ってあなたがまだ買っていないものを勧める。<br />
<br />
[ 2. アイテムベース ]<br />
商品Aを買った人は商品Bも買う傾向がある場合、商品Aを買ったあなたに商品Bを勧める。<br />
<br />
--------------------------<br />
<br />
◎ <b>特徴： 商品の中身（色や形、スペック）を知らなくても、ユーザーの「行動」さえあればレコメンドできるのが強みです。</b></div>
<h3 style="color: blue;">4. 覚えておくべき課題「コールドスタート」</h3>
<p>協調フィルタリングには最大の弱点があります。それは、<b>「データが少ない新規ユーザーや新商品にはレコメンドができない」</b>という点です。これを「コールドスタート問題」と呼び、DS検定の頻出キーワードとなっています。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：ユーザーの属性や商品の特徴（色、ジャンル、テキスト説明など）そのものを分析してレコメンドを行う、協調フィルタリングとは異なる手法はどれか。</b></p>
<p>① ユーザーベース法 &nbsp; ② アイテムベース法 &nbsp; ③ 内容ベース（コンテンツベース）フィルタリング &nbsp; ④ 行列分解法</p>
<p><b>【 正解： ③ 】</b></p>
<p><b>解説：</b> 「好みが似ている人」ではなく「商品そのものの特徴」に注目するのが内容ベース（コンテンツベース）です。両者を組み合わせた「ハイブリッド型」も実務ではよく使われます。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「ユーザーの行動履歴」「似たユーザーのパターン」という記述が出たら「協調フィルタリング」です。新米ユーザーには効かない「コールドスタート問題」とセットで覚えておきましょう！<br />
<br />
<br />
</p>]]>
    </description>
    <category>DS検定＞1-3-1. 学習モデル</category>
    <link>http://learnms.blog.shinobi.jp/Entry/133/</link>
    <pubDate>Sat, 09 May 2026 22:52:31 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/133</guid>
  </item>
    <item>
    <title>【DS検定対策】AIの「知識の源」！コーパス（Corpus）の重要性</title>
    <description>
    <![CDATA[<p>AIが言葉を理解し、生成するためには、お手本となる膨大な文章データが必要です。単なるテキストの集まりを超えた「コーパス」の役割を学びましょう。</p>
<h3 style="color: blue;">1. 【 問題 】</h3>
<p>自然言語処理において、言語の法則や構造を抽出するために、実際の言語使用例を大量に集め、検索や分析ができるように構造化したデータベースを何と呼ぶでしょうか？</p>
<p>① 形態素<br />
② コーパス（Corpus）<br />
③ オントロジー<br />
④ シソーラス</p>
<hr />
<h3 style="color: #d32f2f;">2. 【 解答 】</h3>
<div style="background-color: #eeeeee; border: 2px solid #333; padding: 15px; font-size: 1.2em; font-weight: bold; text-align: center;">正解： ② コーパス（Corpus）</div>
<hr />
<h3 style="color: blue;">3. 整理：ただの「文章」と「コーパス」の違い</h3>
<p>インターネット上の文章をただ集めただけでは、質の高いAIは育ちません。コーパスには「構造化」という重要な工程が含まれます。</p>
<p>【 コーパスを構成する要素 】</p>
<div style="font-family: monospace; border: 1px solid #ccc; padding: 10px; line-height: 1.6;">[ 1. 生テキスト（Raw Text） ]<br />
小説、ニュース、SNS、論文など、実際に使われている文章。<br />
<br />
[ 2. アノテーション（メタデータ） ]<br />
<b>★ ここが重要！</b><br />
単語ごとに「品詞情報」を付与したり、文の「感情スコア」を付けたりして、コンピュータが処理しやすい情報を付け加えること。<br />
<br />
--------------------------<br />
<br />
◎ <b>代表的なコーパス：</b><br />
・現代日本語書き言葉均衡コーパス（BCCWJ）<br />
・Wikipediaのダンプデータ<br />
・青空文庫のテキストデータ</div>
<h3 style="color: blue;">4. コーパスの活用シーン</h3>
<p>1. <b>辞書・文法作成</b>: 言葉の使われ方を統計的に分析し、より自然な文法モデルを作ります。<br />
2. <b>LLMの学習</b>: ChatGPTなどの大規模言語モデルも、Web上の巨大なコーパスを学習することで言語能力を獲得しています。<br />
3. <b>翻訳精度向上</b>: 対訳コーパス（日本語と英語が対になったデータ）により、翻訳AIを強化します。</p>
<hr />
<h3 style="color: orange;">5. DS検定形式：実戦4択クイズ</h3>
<p><b>問：コーパスに品詞情報などの付随情報を追加する作業を一般に何と呼ぶか。</b></p>
<p>① クレンジング &nbsp; ② アノテーション &nbsp; ③ スクレイピング &nbsp; ④ トークン化</p>
<p><b>【 正解： ② 】</b></p>
<p><b>解説：</b> データに対して「ラベル」や「注釈」を付ける作業をアノテーションと呼びます。コーパスの価値は、このアノテーションの質と量で決まると言っても過言ではありません。</p>
<hr />
<h3 style="color: blue;">6. まとめ</h3>
<p>DS検定において「言語を構造化したデータベース」「大量の使用例」という表現が出たら「コーパス」です。データベースエンジニアとしても、非構造化データを構造化データに変える「情報の宝庫」として覚えておきたい用語ですね！</p>]]>
    </description>
    <category>DS検定＞1-4-2.言語モデル</category>
    <link>http://learnms.blog.shinobi.jp/Entry/132/</link>
    <pubDate>Fri, 08 May 2026 23:13:20 GMT</pubDate>
    <guid isPermaLink="false">learnms.blog.shinobi.jp://entry/132</guid>
  </item>

    </channel>
</rss>