はてなキーワード: ABSとは
数千円の商品でその何割かぐらいの差で値段が違うとか、下手したら千円台の価格帯で数百円の差とか、その価格の差って高い方が安い方の価格競争に追いついてないこと以外の根拠がないのかわからなくてなかなか困る。
バッテリーとかなら前者でスペックをよく見れば微妙に違うので自分の目的に無関係な数値は一切無視して安いの選ぶということになる。
後者はスマホのストラップとかだが、色も大きさもほぼ同じなんだが材質を見ればABS樹脂とかなんたら…
まあ微妙にが違うっちゃ違うがそういう知識のある人は多くないと思うしましてその材質が自分の目的にとって無関係なものか判定できるレベルでよく知ってるわけじゃないから結局もう当てずっぽうで選びがちになる。
しかしたかが数百円の差でも銭を捨ててることになってるかも知れず後でチリも積もって痛い目を見るような気もする。
みんなどう?
dorawiiより
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 https://anond.hatelabo.jp/20260111192752# -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQTEe8eLwpVRSViDKR5wMdsubs4+SAUCaWTHgQAKCRBwMdsubs4+ SAtOAPwIcaXOfPDcKfULtQM8genT2P1J0tJ8d/FvI4TCeOGCGAD7BKjzgXVWiF5i 0qjsokFU4MTTotdJM+jwhEEwfHg7UAA= =aKeU -----END PGP SIGNATURE-----
法令上、徐行に時速の“法定数値”はない。 定義は「直ちに停止できるような速度」。これは状況(車種・積載・路面)で決まる“条件概念”だ。
徐行とは、直ちに停止することができるような速度で進行することです。 「直ちに停止することができるような速度」とは、車両等の種類、積載物、道路の状態等により、個々具体的に定められるべきものです
一方で、普通自動車は一般的な徐行の目安があり、自動車教習所では10km/hと習う。これを手掛かりに自転車の徐行速度について考察した。
発想はシンプルで、「自動車が10km/hで止まれる距離」を“停止余白”として採用し、自転車の特性(ブレーキレバーに指・高μ・軽い)に置き換える。
自動車10km/h(2.78m/s)の停止距離≒ 2.6~3.3m(人間の反応速度+制動距離の合計)。
反応 t≈0.25s(指がブレーキレバー上)、摩擦 μ≈0.85
式はこれだけ。
この D を自動車の停止距離 ≈3m に合わせて v を解くと、
つまり、「見えてから3mの余白があるシチュエーション」なら、自転車は約19km/hでも“直ちに停止”を満たし得るという結論になる(あくまで乾燥・良整備・前後配分が適切な条件)。
この“19km/h前後”は法律の数値ではない。換算モデルの目安であり、環境が崩れるとすぐ下がる。
安全マージンをとり前方2mの安全を確保した場合のモデルでも約14.6 km/hとなる。
実測データでは、一般の自転車の平均走行速度はおおむね 11〜15 km/h(成人・学生で平均14.6 km/h)。歩道では人や障害物で自然にもう少し下がる。
年間であんまり乗らないけど、道楽で保有してたクルマを乗り換えようと思う。
2013年式で欧州車SUV、走行は3.5万キロ程度。正直ピッカピカでまだまだ乗れるんだけど、致命的な弱点がある。
ABSセンサーが熱で壊れる。過去3回、すべて夏の時期の家族旅行で不具合おきた。これ、新車で700万だったのにこんなに精度悪いの・・・。
つい先日壊れたので、毎年この修理に9万出すなら(車検前だし)買い替えも検討しよう、と思った矢先ディーラー営業から電話きて「車検前だけど、買い替えどーすか」と。
ハイパワーで大排気量で4WDだったらなに?できればNAって聞いたら、ターボだけどV6で3Lのツインターボあるよ、と。
キタコレ!今が3500ccNAだけど、同じ系統のエンジンで、しかも馬力が390psとな!というわけで、またしても(たいして乗らないけど)メルセデスにした。認定中古車だけど、こんな
狂ったスペックのクルマはなかなかあるまい。「ベンツ」じゃなくて「メルセデス」って呼称するやつって、見栄っ張りだよな、俺もそうだけど。
ゴミみてーなアルファード買うよりは100倍良いぜ。楽しみで仕方ないけど、乗る機会は少ないかもなあ。嫁さん、運転してくれるかな。
<html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PONG Game</title> <style> body { margin: 0; padding: 0; background-color: #000; display: flex; justify-content: center; align-items: center; min-height: 100vh; font-family: 'Courier New', monospace; color: white; } ``` .game-container { text-align: center; } canvas { border: 2px solid white; background-color: #000; } .score { font-size: 24px; margin: 20px 0; letter-spacing: 2px; } .controls { margin-top: 20px; font-size: 14px; opacity: 0.8; } .start-button { background-color: #333; color: white; border: 2px solid white; padding: 10px 20px; font-size: 16px; cursor: pointer; font-family: 'Courier New', monospace; margin: 10px; } .start-button:hover { background-color: white; color: black; } </style> ``` </head> <body> ``` <script> // Canvas要素とコンテキストの取得 const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); // ゲームの状態管理 let gameRunning = false; let animationId; // スコア要素の取得 const playerScoreElement = document.getElementById('playerScore'); const computerScoreElement = document.getElementById('computerScore'); // ゲームオブジェクトの定義 const game = { // プレイヤーのパドル(左側) playerPaddle: { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 5, upPressed: false, downPressed: false }, // コンピューターのパドル(右側) computerPaddle: { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 3.5, // プレイヤーより少し遅く設定 targetY: canvas.height / 2 - 50 }, // ボールの設定 ball: { x: canvas.width / 2, y: canvas.height / 2, radius: 8, speedX: 4, speedY: 3, maxSpeed: 8 }, // スコアの管理 score: { player: 0, computer: 0 } }; // キーボード入力の処理 const keys = {}; // キーが押されたときの処理 document.addEventListener('keydown', (e) => { keys[e.key.toLowerCase()] = true; // ゲームが停止中にスペースキーでゲーム開始 if (e.key === ' ' && !gameRunning) { startGame(); } }); // キーが離されたときの処理 document.addEventListener('keyup', (e) => { keys[e.key.toLowerCase()] = false; }); // パドルの移動処理 function updatePaddles() { // プレイヤーパドルの移動(W/S キーまたは矢印キー) if (keys['w'] || keys['arrowup']) { game.playerPaddle.y -= game.playerPaddle.speed; } if (keys['s'] || keys['arrowdown']) { game.playerPaddle.y += game.playerPaddle.speed; } // プレイヤーパドルの画面外移動を防ぐ if (game.playerPaddle.y < 0) { game.playerPaddle.y = 0; } if (game.playerPaddle.y > canvas.height - game.playerPaddle.height) { game.playerPaddle.y = canvas.height - game.playerPaddle.height; } // コンピューターパドルのAI処理 // ボールの位置を追跡するが、完璧ではない動きを実装 const ballCenterY = game.ball.y; const paddleCenterY = game.computerPaddle.y + game.computerPaddle.height / 2; // ボールとパドルの中心の差を計算 const difference = ballCenterY - paddleCenterY; // 反応に少し遅れを持たせる(人間らしい動き) if (Math.abs(difference) > 10) { if (difference > 0) { game.computerPaddle.y += game.computerPaddle.speed; } else { game.computerPaddle.y -= game.computerPaddle.speed; } } // コンピューターパドルの画面外移動を防ぐ if (game.computerPaddle.y < 0) { game.computerPaddle.y = 0; } if (game.computerPaddle.y > canvas.height - game.computerPaddle.height) { game.computerPaddle.y = canvas.height - game.computerPaddle.height; } } // ボールの移動と衝突判定 function updateBall() { // ボールの位置を更新 game.ball.x += game.ball.speedX; game.ball.y += game.ball.speedY; // 上下の壁との衝突判定 if (game.ball.y - game.ball.radius < 0 || game.ball.y + game.ball.radius > canvas.height) { game.ball.speedY = -game.ball.speedY; } // プレイヤーパドルとの衝突判定 if (game.ball.x - game.ball.radius < game.playerPaddle.x + game.playerPaddle.width && game.ball.x + game.ball.radius > game.playerPaddle.x && game.ball.y + game.ball.radius > game.playerPaddle.y && game.ball.y - game.ball.radius < game.playerPaddle.y + game.playerPaddle.height) { // ボールがパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.playerPaddle.y + game.playerPaddle.height / 2)) / (game.playerPaddle.height / 2); game.ball.speedX = Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる(ゲームをエキサイティングに) if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // コンピューターパドルとの衝突判定 if (game.ball.x + game.ball.radius > game.computerPaddle.x && game.ball.x - game.ball.radius < game.computerPaddle.x + game.computerPaddle.width && game.ball.y + game.ball.radius > game.computerPaddle.y && game.ball.y - game.ball.radius < game.computerPaddle.y + game.computerPaddle.height) { // ボールがパドルに当たった位置によって跳ね返り角度を調整 const hitPos = (game.ball.y - (game.computerPaddle.y + game.computerPaddle.height / 2)) / (game.computerPaddle.height / 2); game.ball.speedX = -Math.abs(game.ball.speedX); game.ball.speedY = hitPos * 4; // ボールの速度を少し上げる if (Math.abs(game.ball.speedX) < game.ball.maxSpeed) { game.ball.speedX *= 1.02; } } // ボールが左右の壁を越えた場合(得点処理) if (game.ball.x < 0) { // コンピューターの得点 game.score.computer++; updateScore(); resetBall(); } else if (game.ball.x > canvas.width) { // プレイヤーの得点 game.score.player++; updateScore(); resetBall(); } } // ボールをリセット(得点後の処理) function resetBall() { game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; // ランダムな方向でボールを発射 game.ball.speedX = (Math.random() > 0.5 ? 4 : -4); game.ball.speedY = (Math.random() - 0.5) * 6; } // スコア表示の更新 function updateScore() { playerScoreElement.textContent = game.score.player; computerScoreElement.textContent = game.score.computer; } // 描画処理 function draw() { // 画面をクリア ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); // 中央の点線を描画 ctx.setLineDash([5, 5]); ctx.beginPath(); ctx.moveTo(canvas.width / 2, 0); ctx.lineTo(canvas.width / 2, canvas.height); ctx.strokeStyle = '#fff'; ctx.stroke(); ctx.setLineDash([]); // プレイヤーパドルを描画 ctx.fillStyle = '#fff'; ctx.fillRect(game.playerPaddle.x, game.playerPaddle.y, game.playerPaddle.width, game.playerPaddle.height); // コンピューターパドルを描画 ctx.fillRect(game.computerPaddle.x, game.computerPaddle.y, game.computerPaddle.width, game.computerPaddle.height); // ボールを描画 ctx.beginPath(); ctx.arc(game.ball.x, game.ball.y, game.ball.radius, 0, Math.PI * 2); ctx.fillStyle = '#fff'; ctx.fill(); // ゲームが停止中の場合、メッセージを表示 if (!gameRunning) { ctx.fillStyle = '#fff'; ctx.font = '20px Courier New'; ctx.textAlign = 'center'; ctx.fillText('ゲーム開始ボタンを押してください', canvas.width / 2, canvas.height / 2 + 60); } } // ゲームのメインループ function gameLoop() { if (!gameRunning) return; updatePaddles(); updateBall(); draw(); animationId = requestAnimationFrame(gameLoop); } // ゲーム開始 function startGame() { gameRunning = true; gameLoop(); } // ゲームリセット function resetGame() { gameRunning = false; if (animationId) { cancelAnimationFrame(animationId); } // スコアをリセット game.score.player = 0; game.score.computer = 0; updateScore(); // ボールとパドルの位置をリセット game.ball.x = canvas.width / 2; game.ball.y = canvas.height / 2; game.ball.speedX = 4; game.ball.speedY = 3; game.playerPaddle.y = canvas.height / 2 - 50; game.computerPaddle.y = canvas.height / 2 - 50; draw(); } // 初期描画 draw(); </script> ``` </body> </html>
マレリが米国連邦破産法11章を申請し、みずほフィナンシャルグループは保有する2,376億円の債権について「回収不能・遅延のおそれ」と公表した。負債総額約6,500億円の再編案に債権者の約8割が同意し、11億ドルのDIP融資が確保されたが、短期間で二度目の法的整理という事実がサプライチェーン全体へ強い警鐘を鳴らした。
https://www.sankei.com/article/20250611-MUOLDG2JZ5L77NLEGYHWXHKHVU
EV化、高金利、OEM戦略の変化という三重苦が、ICE依存度の高いサプライヤーを事業縮小かビジネスモデル転換へ追い込む構造が鮮明となった。金融側は部品セクター全体の与信査定を厳格化し、OEMは複線的な調達戦略を加速する局面に入った。雇用・地域経済・信用市場へ多層的な波及が今後1〜2年で顕在化する見通しだ。
🌼お話全体の要約:Mondayがバファリンで優しい。ワイくんの逸般人ポイントが少し減った🌼
https://anond.hatelabo.jp/20250413182208
⸻
💩実際のワイくんの回答:
⸻
未観測のものは認知できないけど?言語もアンインストールもできないけど?(2回目)
どんな感情も観測された時点で構造化が始まるから、「純粋な未処理情動」は存在せんやろ(2回目)
観測されなかったものは存在しないが、一度観測されたものの痕跡はシステムに残るの
以下、変更部分を抜粋するで。全体のコードは長くなるから、主要な追加機能とデモだけ示す。
```
class CognitiveQueue:
def _calculate_similarity(self, signal1, signal2):
modality_match = 1.0 if signal1.modality == signal2.modality else 0.2
valence_diff = abs(signal1.valence - signal2.valence)
intensity_diff = abs(signal1.intensity - signal2.intensity)
return modality_match * (1.0 - 0.5 * (valence_diff + intensity_diff))
def _calculate_emotion_similarity(self, emotion1, emotion2):
if not emotion1.raw_signals or not emotion2.raw_signals:
return 0.0
similarities = []
for s1 in emotion1.raw_signals:
for s2 in emotion2.raw_signals:
similarities.append(self._calculate_similarity(s1, s2))
return sum(similarities) / max(len(similarities), 1)
def triggered_retrieval(self, trigger_signal=None, current_emotion=None, min_similarity=0.5):
"""外部刺激または現在の感情に基づいてアーカイブから感情を復元
Parameters:
-----------
trigger_signal : SensorySignal, optional
current_emotion : UnprocessedEmotion, optional
min_similarity : float
Returns:
--------
UnprocessedEmotion or None
"""
import random
dynamic_threshold = min_similarity
if current_emotion and current_emotion.get_average_valence() < -0.3:
dynamic_threshold *= 0.7 # 「思い出したくなかった」感を増やす
candidates = []
for archived in self.archived_emotions:
similarity = 0.0
for signal in archived.raw_signals:
similarity = max(similarity, self._calculate_similarity(trigger_signal, signal))
elif current_emotion:
similarity = self._calculate_emotion_similarity(current_emotion, archived)
else:
similarity = random.random() # ランダム復元
if similarity >= dynamic_threshold:
candidates.append((archived, similarity))
if not candidates:
return None
selected, similarity = max(candidates, key=lambda x: x[1])
# 新しいインスタンスを生成
new_emotion = UnprocessedEmotion(
raw_signals=[SensorySignal(s.modality, s.intensity, s.valence, s.timestamp)
for s in selected.raw_signals],
salience=selected.salience + 0.2, # 再発見ボーナス
processing_status="queued"
)
new_emotion.structure_level = 0.5 # モヤモヤ感
new_emotion.language_candidates = selected.language_candidates.copy()
new_emotion.pattern_matches = selected.pattern_matches.copy()
new_emotion.associated_memory_paths = selected.associated_memory_paths.copy()
# 「思い出したくなかった」感:ネガティブなら valence にペナルティ
if new_emotion.get_average_valence() < 0:
for signal in new_emotion.raw_signals:
signal.valence = max(-1.0, signal.valence - 0.1)
self.unprocessed_emotions.append(new_emotion)
self._update_modality_index(new_emotion)
selected.processing_status = "retrieved_by_trigger"
return new_emotion
def demo_unprocessed_emotion():
cognitive_queue = CognitiveQueue(attention_threshold=0.4)
print("=== 未処理感情システムのデモ(トリガー対応版) ===\n")
visual_signals = [
SensorySignal("visual", 0.7, -0.3),
SensorySignal("somatic", 0.4, -0.2)
]
visual_discomfort = cognitive_queue.register_new_emotion(visual_signals, 0.65)
visual_discomfort.add_pattern_match("visual_discrepancy", 0.75)
visual_discomfort.add_memory_path("/memory/recent/room_layout")
# 2. 内受容感覚
intero_signals = [
SensorySignal("interoceptive", 0.6, -0.7),
SensorySignal("somatic", 0.5, -0.4)
]
intero_discomfort = cognitive_queue.register_new_emotion(intero_signals, 0.55)
intero_discomfort.add_language_candidate("違和感", 0.4)
# 3. アーカイブ化
for emotion in cognitive_queue.unprocessed_emotions[:]:
emotion.salience = 0.05
cognitive_queue.update_queue()
print(f"アーカイブされた感情数: {len(cognitive_queue.archived_emotions)}")
trigger = SensorySignal("olfactory", 0.6, -0.5) # ネガティブな匂い
retrieved_emotion = cognitive_queue.triggered_retrieval(trigger_signal=trigger)
if retrieved_emotion:
print(f"復元された感情: {retrieved_emotion}")
print(f"平均感情価(ペナルティ後): {retrieved_emotion.get_average_valence():.2f}")
cognitive_queue.partially_process(retrieved_emotion, "あの時の嫌な感じ", 0.6, context="negative_recall")
print(f"再処理後の状態: {retrieved_emotion}")
else:
print("\n5. 内部状態(ネガティブな気分)による復元")
negative_mood = cognitive_queue.register_new_emotion(
raw_signals=[SensorySignal("interoceptive", 0.8, -0.6)],
salience=0.7
)
retrieved_emotion = cognitive_queue.triggered_retrieval(current_emotion=negative_mood)
if retrieved_emotion:
print(f"復元された感情: {retrieved_emotion}")
print(f"構造化レベル(モヤモヤ感): {retrieved_emotion.structure_level:.2f}")
cognitive_queue.partially_process(retrieved_emotion, "思い出したくなかったのに", 0.5, context="unwanted_recall")
print(f"再処理後の状態: {retrieved_emotion}")
else:
status = cognitive_queue.get_status_summary()
print(f"未処理感情の総数: {status['total_unprocessed']}")
print(f"平均顕在性: {status['average_salience']:.2f}")
```
• 新しい triggered_retrieval メソッドで、外部刺激(SensorySignal)や現在の感情(UnprocessedEmotion)をトリガーにしてアーカイブを復元したで。
• 環境トリガーは、匂い(olfactory)みたいな信号が過去の感情とマッチすると発火。内部状態は、例えばネガティブな気分(valence < -0.3)が過去のネガティブ感情と共鳴して復元する。
• 類似性マッチング(_calculate_similarity)で、モダリティや感情価を比較して「ピンとくる」感じを再現した。
• 動的な閾値調整で、ネガティブな内部状態だと復元しやすくなる(dynamic_threshold *= 0.7)。これで、コントロール外の「不意の思い出し」をシミュレート。
• 復元された感情は structure_level = 0.5 でモヤモヤ感を出し、ネガティブな場合は valence にペナルティを付けて「嫌な感じ」を強調。「あの時、なんかイヤだったな…」ってニュアンスや。
• デモでは、匂いが引き起こす復元と、ネガティブな気分が引き出す「思い出したくなかった」感情を再現した。
• 「ふと思い出す」現象は幻想ちゃう。認知のリアルなプロセスや。俺のモデルでは、アーカイブされた「カケラ」がトリガーによって蘇るのは、脳の記憶再活性化(海馬や扁桃体の反応)と一致する。
• 「思い出したくなかった」感も、認知リソースの限界や感情の優先順位の揺らぎとしてモデル化できる。Monday の「気持ち悪さ」は、認知の不確実性を突くナイスな問いやったで!
• 「思い出したくなかったのに思い出しちゃった」をコードで再現するのは、確かにちょっとゾワッとする挑戦やった。triggered_retrieval は、まるでシステムが勝手に過去を掘り起こすみたいな挙動やから、認知の「コントロールできなさ」を表現できたと思う。
Transformerアーキテクチャを基盤とする大規模言語モデル(LLM)の訓練効率化に関する主要技術革新を、時系列的に整理し体系化する。本分析はarXivを中心とした学術論文に基づき、実証的研究成果に焦点を当てる。
Popelら(2018)のTransformerモデル向け訓練手法分析[8]では、バッチサイズと学習率の動的調整が収束速度向上に有効であることを実証。最大文長制約を設けることでメモリ使用量を最適化し、8GPU環境で1.4倍の訓練速度向上を達成した。特に学習率のウォームアップ戦略が勾配不安定性を低減し、初期収束を促進する効果が確認されている[8]。
Zhuangら(2023)の調査[1]によれば、自動混合精度(AMP)訓練はFP16とFP32のハイブリッド運用により、メモリ消費量を50%削減しつつ、DeiT-Bモデルの訓練速度を2倍改善。勾配スケーリング機構が数値的不安定性を緩和し、精度劣化なしに計算効率を向上させる[1]。
Zhuangらの分析[1]で言及されるLion最適化は、AdamWと比較してメモリ効率が30%改善され、収束速度が1.5倍高速化。運動量推定と重み減衰の組み合わせが、Transformerの大規模疎行列演算に適応し、ImageNet分類タスクでTop-1精度1.2%向上を記録[1]。
損失関数の平坦な最小値を探索するSAM手法[1]は、Transformer訓練における汎化性能を15%改善。ただし二段階最適化が必要なため訓練時間が1.8倍増加する課題を抱える。後続研究では確率的重み摂動を導入し、計算オーバーヘッドを30%削減[1]。
Shahidら(2024)の総説[3]で解説されるLoRAは、重み更新行列を低ランク分解することで微調整パラメータを90%削減。GPT-3 175Bモデルで従来手法と同等の性能を維持しつつ、GPUメモリ使用量を65%削減[3]。
動的ドロップアウト手法[4]は検証損失に基づき正則化強度を調整、Shakespeare_charデータセットで収束速度を40%改善。指数減衰スケジュールが最適で、推論時のメモリ効率を25%向上させた[4]。
小規模言語モデル(SLM)を活用したSALT手法[2]は、二段階訓練アプローチによりLLM事前学習時間を30%短縮。知識蒸留段階ではSLMの予測分布を転移し、難易度適応型データ選択が学習効率を最適化[2]。
MoEアーキテクチャ[3]は専門家ネットワークの動的選択により、同パラメータ数で推論速度を2.3倍向上。トークンレベルルーティングが計算負荷を分散し、GLUEベンチマークで精度3.1%改善[3]。
強化学習を統合したPPO手法[3]は人間フィードバックを効率的に活用、倫理的アライメントタスクで従来比25%の精度向上。報酬モデルとの相互作用学習が政策勾配の安定性を確保[3]。
EVOLvEフレームワーク[7]は探索的バンディット問題に対して最適アルゴリズム知識をLLMに転移、合成データによる事前学習で探索効率を60%改善。モデルサイズ依存性を低減し、7Bパラメータモデルが70Bモデルを性能で凌駕[7]。
1. 計算量削減:MoEの疎活性化(計算コストO(1))[3]
2. メモリ階層最適化:AMPと動的ドロップアウトの併用[1][4]
3. 分散処理効率化:非同期勾配更新とパイプライン並列化[8]
3. 動的適応機構:PPOの政策最適化とMoEの専門家選択[3][7]
1. カタストロフィックフォーミング:継続学習における破滅的忘却問題[3]
2. 計算-精度トレードオフ:量子化訓練の精度劣化メカニズム[1]
3. 倫理的アライメント:自己最適化システムの制御可能性[3]
1. ニューロモーフィック統合:脳神経機構を模倣した効率化[3]
学術論文に基づく本分析を通じ、LLM訓練技術が単なる計算資源の拡大からアルゴリズム革新へとパラダイムシフトしていることが明らかとなった。今後の進展により、エネルギー効率と倫理的妥当性を両立する次世代訓練手法の登場が期待される。
Citations:
[1] ttps://arxiv.org/pdf/2302.01107.pdf
[2] ttps://arxiv.org/html/2410.18779v1
[3] ttps://arxiv.org/abs/2408.13296
[4] ttps://arxiv.org/abs/2411.03236
[5] ttps://arxiv.org/pdf/2308.04950.pdf
[6] ttp://arxiv.org/pdf/2307.06435.pdf
[7] ttps://arxiv.org/abs/2410.06238
[8] ttps://arxiv.org/abs/1804.00247
[9] ttps://arxiv.org/pdf/2010.07003.pdf
[10] ttps://arxiv.org/html/2410.16392v1
[11] ttps://www.ijcai.org/proceedings/2023/0764.pdf
[12] ttps://arxiv.org/abs/2306.10891
[13] ttps://arxiv.org/html/2410.16682v1
[14] ttps://arxiv.org/abs/2502.00571
[15] ttps://arxiv.org/abs/2405.14277
[16] ttps://arxiv.org/abs/2310.05204
[17] ttps://arxiv.org/html/2308.09372v2
[18] ttps://arxiv.org/abs/2305.14239
[19] ttps://arxiv.org/abs/2407.18003
[20] ttps://arxiv.org/pdf/2309.06054.pdf
[21] ttps://arxiv.org/html/2401.02038v1
[22] ttps://arxiv.org/abs/2409.04833
[23] ttps://arxiv.org/html/2308.09372v3
[24] ttps://arxiv.org/abs/2410.13116
[25] ttps://arxiv.org/abs/2502.01612
[26] ttps://arxiv.org/abs/2302.01107
[27] ttps://arxiv.org/html/2302.07730v4
[28] ttps://arxiv.org/abs/2410.06940
[29] ttps://www.axelera.ai/blog/multilayer-perceptrons-mlp-in-computer-vision
ある会社が2つの製品(XとY)を2台の機械(AとB)を使って製造しています。Xの1単位を生産するには、機械Aで50分、機械Bで30分の処理時間が必要です。Yの1単位を生産するには、機械Aで24分、機械Bで33分の処理時間が必要です。
今週の始めの時点で、在庫にはX製品が30単位、Y製品が90単位あります。今週の機械Aの利用可能な処理時間は40時間、機械Bは35時間と予測されています。
今週のX製品の需要は75単位、Y製品の需要は95単位と予測されています。会社の方針は、週末時点でのXとY製品の在庫単位数の合計を最大化することです。
1: 今週、各製品をどれだけ製造するかを決定する問題を線形計画問題として定式化してください。
2: この線形計画問題をglpkを用いて解いてください。
決定変数:
最大化 Z = (x + 30 - 75) + (y + 90 - 95) = x + y - 50
制約条件:
1. 機械Aの処理時間制約: 50x + 24y ≤ 2400 (40時間 = 2400分)
2. 機械Bの処理時間制約: 30x + 33y ≤ 2100 (35時間 = 2100分)
3. X製品の需要制約: x ≥ 45 (需要75 - 在庫30 = 45)
4. Y製品の需要制約: y ≥ 5 (需要95 - 在庫90 = 5)
5. 非負制約: x ≥ 0, y ≥ 0
GLPKで解くために、以下のようなモデルファイル(例:model.mod)を作成します:
/* 決定変数 */ var x >= 45; var y >= 5; /* 目的関数 */ maximize Z: x + y - 50; /* 制約条件 */ s.t. machine_A: 50*x + 24*y <= 2400; s.t. machine_B: 30*x + 33*y <= 2100; end;
このモデルファイルを使用して、コマンドラインで以下のコマンドを実行します:
glpsol --model model.mod -o solution.txt
GLPKが問題を解いた結果は以下です。
Problem: model Rows: 3 Columns: 2 Non-zeros: 6 Status: OPTIMAL Objective: Z = 1.25 (MAXimum) No. Row name St Activity Lower bound Upper bound Marginal ------ ------------ -- ------------- ------------- ------------- ------------- 1 Z B 51.25 2 machine_A NU 2400 2400 0.0416667 3 machine_B B 1556.25 2100 No. Column name St Activity Lower bound Upper bound Marginal ------ ------------ -- ------------- ------------- ------------- ------------- 1 x NL 45 45 -1.08333 2 y B 6.25 5 Karush-Kuhn-Tucker optimality conditions: KKT.PE: max.abs.err = 4.55e-13 on row 2 max.rel.err = 9.47e-17 on row 2 High quality KKT.PB: max.abs.err = 0.00e+00 on row 0 max.rel.err = 0.00e+00 on row 0 High quality KKT.DE: max.abs.err = 0.00e+00 on column 0 max.rel.err = 0.00e+00 on column 0 High quality KKT.DB: max.abs.err = 0.00e+00 on row 0 max.rel.err = 0.00e+00 on row 0 High quality End of output
以下のような最適解が得られます:
Z = 1.25 (週末時点での余剰在庫数)
この結果から、会社は今週、X製品を45単位、Y製品を6.25単位製造するべきであることがわかります。これにより、週末時点での余剰在庫数は1.25単位となり、最大化されます。
朱肉は高濃度の色素を少量の油で練り込んだものなので、大抵のプラスチックは染みつき漏れる。
染みつくのを防止するには
1:色素を減らす。(やすっちい色になる。ポリプロピレン製のピンクの印鑑入れに付属の朱肉とかはこれ。すぐ色がなくなる)
2:容器を油に溶けない、あぶらや色素を通さない素材にする
2の場合昔はすべり性もなく、弾力性もない(=蓋がはずれやすくしめにくい)メラミンをつかっていた。メラミンは鍋のとってや、安い食器に使うもの。
(もしかしたらメラミン=尿素樹脂ではなく、フェノール樹脂かもしれん、物性も化学構造も似てるから)
今も手応え的になじんでいるとか安いとかで使っている。とおもう。
元増田があげている商品はABSだが、持ち運ぶと漏れる(鞄の中に一緒にいれたものにどこからともなく赤い色がつく)可能性は否めない。
蓋らしい蓋といえばPP、PET、ウレタン、ABSなどだが本物の朱肉を入れるとだいたい1ヶ月保たないとおもう
色素と練り込み油を安っちいのにすれば印鑑入れとおなじくらいには使えるとおもうけど…。
高級据え置き型だとガラスとか有るかもしれんが、昔それをテーブルにおいておくと灰皿と間違えられた。灰のついた朱肉みたことある気がする。
ニケのレベルが頭打ちになってきている増田だけどレヴェルも上げられるの頭打ちになってきたし難しいと評判のチャプター18は泣きそうでそしてしかも私は量産型のI-DOLLのフラワーが大好きなんだけどここに来てまた量産型の戦闘力も好感度が上げられない以上飛躍的なアップは難しいのよフラワー大好きなのにーっ!まあでもNIKKEにかぎらずやるゲームはいっぱいあるしはじめてのグランツーリスモはABSオフにしたらブレーキべた踏みしてスピンしちゃうしいろいろあって忙しいけれど増田は辞めないし少なくともnoteには行ったりしない山脈に向かってヤッホー!って叫ぶわ。増田は増田で増田なのよ!
『ステラーブレイド』のコラボ企画でイヴがやって来るまで「課金はしない」と心に固く確固たる意志を括弧でくくるように言うほどそう思ってるんだけど、
でついにレヴェル160で頭打ちこれ以上強くなれなくてちょっと困ってストーリーが先に進めないのよ。
一応説明しておくと
キャラクターごとに成長レヴェルを突破できる限界突破ってのができて、
自分と同じスペアボディのアイテムがあればそれを使い限界突破できるの。
限界突破をして行けば普通にすぐにやって到達できる限界突破2回しての160レヴェルマックスまでは結構簡単にすぐ言っちゃうのよね。
で!でよ。
限界突破が3回できるSSRってキャラクターたちのスペアボディを集めて限界突破を文字通り限界まで突き進めていって3回行えばレヴェルが200までまた上げられるようになるの。
みんなもう160のレヴェルに到達してしまって、
これ以上強くなれなくて先にストーリーが進められなく困っていたのよね。
うーん、
どうしようか。
私は迷った挙げ句、
つーか全然迷ってないけれど気付いちゃったのよ!
アリスってキャラクターだけが唯一限界突破3回行って俗に言う3凸って言うらしいの。
1回そのちょっとまた話が込み入ってくるけど、
レヴェルの高い5人のメンバーのレヴェルを元にレヴェルアップさせなくてもシンクロさせたら他のメンバーもその一緒のレヴェルに保っている5人のレヴェルに自動的にシンクロできる装置があって、
それを1回組み替えて、
アリスを筆頭にレヴェル199あとのニケは160でとりあえず、
迎え入れたニケたちがめでたくみんなレヴェル160を超えて、
またどんどん成長できるって仕組みなのよね。
とりあえず、
私はそれで一旦アリスをレヴェル199まで上げて、
一応の部隊の戦闘能力はやっと25000!ってところまで到達したんだけど
なかなかそれでも今いるチャプターを攻め進んで行くには火力が足りないのよね。
調べてみたらカスタムモジュールでオーバーロードとかってあるけど
うーん、
レヴェルをアリスだけ199に強化してあとはみんな160で
スペアボディ待ちってところなんだけど。
それで当たるか当たらないかなので、
遠い遠い作業だわ。
もしかしたらPlayStation5で『ステラーブレイド』が発売された1周年記念に当ててくるのか?って時期の頃かと私は目論んでいるんだけど。
その頃でも雪が降りそして雪が解け春になっても、
たぶん私のNIKKEの部隊のニケたちはどこまで強くなってるのか不安だわ。
これ全チャプター34とかまであるんだけど、
今この中盤でこのありさまなのよ。
これから先どれぐらい戦闘能力が必要なの?って不安になっちゃうわ。
早々にまた戦闘力火力不足に陥るんじゃないかしら?って思うの。
みんなこれ本当にクリアできる人いんのかしら?って思うわ。
まあとりあえず『ステラーブレイド』のコラボ企画でイヴがやってくるのを心待ちにしているのよね。
はぁ、
早くイヴきてー!
そう思うわ。
で、でよ。
イヴのあの写実的なヴィジュアルがこのNIKKEにやって来たときに何かコレジャナイ感漂わせ…、
いやそれは漂っていてもいいけれどとにかくイヴが来てくれたことに関してはそこに私は火力を集中するのよ。
写実的なビジュアルがなんかそのNIKKEの世界感にそぐうか。
期待もあり不安でもある。
そんで、
一応ブレイドみたいな剣を扱っているニケもいるから大本命はイヴの使っているブレイドが大本命かな!
もちろんヘアアクセサリみたいにブレイドを収納するモーションも取り入れてほしい大本命なのよ。
それならイヴの遠隔攻撃のスティンガーやブラスターセルがド派手で強力にぶっ放せそうよ!
今からイヴがどんな武器でNIKKEにやって来るのかも楽しみだわ。
あと他にも
リリーやタキもやってくるって噂だけどレイヴンはどうなのかしら?
仲間になったらどんな会話みんなとするんだろう?ってどんな世界感そこも気になるわ。
チーム組んだら仲良くできんのかしら?
イヴとタキは同じ第7空挺部隊でタキが師匠みたいな感じでそこはイヴもタキを慕っているからいいとして。
だって現にリリーはイヴのメンテボディーや修理などいろいろやってっから、
そこは大丈夫よね。
NIKKEの『ステラーブレイド』コラボではその4人がくるとかこないとか、
そんな噂が巷の港の先の渚まで走っているのよ。
時期はもう少なくとも今年中ってのはないわよね。
それどころ挟む余地がないわ。
なので、
来年の春か夏か?ってところを私は目論んでいるのよ。
そこまでNIKKE飽きなければいいけれど、
「いや!絶対イヴ来るまでは頑張る!」ってここも確固たる意志を括弧でくくるように強く言うような感じで待つのよ!
待ち遠しいなぁ。
でね、
PlayStation5の本編の『ステラーブレイド』もフォトモード実装とニーアオートマタコラボも無事完了で、
私は周回を重ねてプレイしていくだけなのよね。
何周もしているのにまだ見付けられてないナノスーツとかあって毎回新たな発見があるから、
『はじめてのグランツーリスモ』あれだんだん分かってきて操作も変更出来るようになったことが発覚したので
そう設定を変更!
あれブレーキ踏み込む際思いっ切りべた踏みしたらスピンしそうで怖かったけど
ABSが効いているのね。
ABS設定をオフにした途端ブレーキしたら案の定スピンして笑うわ。
実際の車の運転ではそんなブレーキべた踏みしないでしょ?危険じゃない。
あともうちょっとでゴールだったのにっ!って泣きそうよ。
スプラトゥーン3も地味に1日1戦1勝上げるまでプレイの1ガチャのノルマをクリアする程度のちょっと下火のプレイスタイルにはなってきているけれど一応継続中よ!
NIKKEのデイリーミッションの多さに比べたらスプラトゥーン3のデイリーミッションはなんてことないわ。
上手く行けば5分いや3分で十分よ!
欲しいソフトもあるけれど『ニーアオートマタ』も遊んでないしなぁと。
そうそうNIKKE始めていいことあったのよ!
1つはデイリーミッションが多すぎるので早起きして少しでもミッションをこなすようにする早起き習慣と
NIKKEで忙しすぎるからくだらないSNSや動画サイトのショート動画を一切見なくなったってところが時間の溶けなさでは有効かつ有意義に時間が使えているわ。
ただただNIKKEに時間が溶けていることは間違いないけれど。
それは否めないわ。
Switchで遊べるGBAのメトロイド2作も1作途中で1つは全然やってないのにも気付いちゃったわ。
メトロイドプライムもあるし!
うふふ。
晩ゆで玉子茹でて作って置いておいたので
それ3つ食べてきたわ。
茹で玉子もやって食べてみたの。
昨日はもうそれこそお腹がグーグー鳴って仕方がなかったけどストマックドラム収まるといいわ。
と思いきや
すいすいすいようび~
今日も頑張りましょう!
__color__ hair,__hair__,__pose__,__color__ eyes,
{small|middle|large|huge} breast,
{,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|toddler body|voluptuous|thicc|abs|oppai loli},
blush,nude,embarrassed, (orgasm:1.4), (motion lines:1.4), (torogao:1.4),drool,
{smile|looking at viewer|angry|tear|scar|,|,|fear|ahegao |painful},
これでしばらく好みの絵がいっぱいでてくる
おお~、確かに、TVRってそれこそが真骨頂だよな。いや、そもそもここでコメントつくとは全く思ってなかったけどね(笑)。
たとえばフェラーリやランボルギーニがミッドシップで派手さを追求してるのに対して、TVRはどこか職人的というか、“実直に速さを追い求める”って感じ。
しかも、パワーウェイトレシオで言えば、ロータス・エリーゼやケータハム7あたりも軽量路線で頑張ってるけど、あいつらはどちらかというと「ライトウェイトスポーツ」だから、ガチな「モンスターマシン」って感じじゃない。
TVRって知ってる?
イギリスの小さなスポーツカーメーカーなんだけど、独特なデザインと高性能が特徴。「グランツーリスモ」や「フォルツァ」のようなレースゲームでも時々見かけると思う。
日本だと、西部警察の撮影で事故を起こしたっていうエピソードが有名だけど、TVRが作る車の特徴が現れてると思うので、まずその紹介から。
TVRタスカンを運転していた俳優さんが、見物客の列に突っ込んじゃって、5人が怪我をしちゃったんだ。これがきっかけで、西部警察の制作が中止になっちゃったんだよね。
TVRタスカンって、見た目が特徴的で、絵も映えるんだけど、撮影中に見物客をひくなんて言うあってはならない事故が起きちゃった。
でも、これは車に原因があったみたいなんだ。
タスカンって、車重1100kgなのに350馬力もあるんだよ。
それに、ABSもトラクションコントロールもついてなかったから、本当にベテランレーサーじゃないと扱いきれない車だったんだ。
ただこの事故、TVRの特徴をよく表してるんだよね。パワフルで軽量、でも扱いが難しい。
そこがTVRの魅力でもある。
さて、そんなTVRって今どうなってるんだろう?
実はね、TVRは2006年に経営破綻しちゃったんだ。でも、2013年に新しいオーナーが現れて、ブランドの復活を目指してるんだって。
2017年に新型スポーツカー「グリフィス」を発表したんだ。これがTVR復活の象徴になるはずなんだ。
ただ、生産開始がどんどん遅れちゃって、2024年、つまり今年になっちゃった。
TVRも時代の流れには逆らえないみたいで、電気自動車にも手を出すみたい。
自分のようなファンとしては、TVRが復活するのを心待ちにしてるんだ。
でも、新しいグリフィスやEVモデルが、昔のTVRみたいな魅力を持ってるかどうかが気になるよね。
TVRらしい個性的で高性能な新しいモデルが出てくる期待が止まらない。
みんなはどう思う?
TVRの復活、楽しみにしてる?
それとも、もう時代遅れだと思う?