はてなキーワード: Arcとは
ダイヤモンドの↓の記事が盛りすぎでブクマカが釣られまくっているので、ちょっと落ち着けという意味で少し解説する
普通の人が「フリック入力を発明」というフレーズを見たら、どっちを想像する?
1. 上下左右方向のフリック操作で文字入力する手法を考案した
普通は1を想像するよね。でも、上の記事の「発明」は2の意味。8割くらいのブクマカはここを勘違いしてコメントしてるように見える
同じ発明家氏の記事でも3ヶ月前の東洋経済のほうは、「フリック入力を発明」という釣りフレーズこそ使っているものの本文を良く読めば発明のキモの部分が2であり1では特許を取れなかったことがそれなりに分かるように書いてある
「フリック入力」を発明しMicrosoftに売却した彼の"逆転"人生。元・売れないミュージシャン兼フリーター、家賃3万のボロアパートでひらめく
https://b.hatena.ne.jp/entry/s/toyokeizai.net/articles/-/889631
もちろん2の意味の発明もスゴイし重要なんだけど、釣りは良くないよね
そもそも世の中のほとんどの技術は様々な発明やアイデアの集合体である。歴史の積み重ねであり、最終形がいきなり湧いて出るわけではない。もちろん「フリック入力」にも歴史の積み重ねがある。それを少し紐解いてみよう(なお、下記の「年」は引用可能な特許や論文が出た時期であり、実際にはそれよりもっと前にソフトウェアがリリースされていたりアイデアがメーリングリストに投稿されていたりすることもある)
[追記]※増田の仕様上ひとつの記事に貼れるリンク数に制限があるため一部URLのhを抜いている点、不便ですがご了承ください[/追記]
ttps://dl.acm.org/doi/10.1145/57167.57182 (論文)
放射状に選択肢を並べるUIのアイデアは1960年代から見られるが、接地点からの移動方向情報を用いた入力手法の祖としてはとりあえずこれを挙げることができるだろう。これは文字入力に特化したものではなく、一般的なメニュー選択のための手法である
ttps://dl.acm.org/doi/10.1145/191666.191761 (論文)
pie menuを文字入力に応用したもの。論文の著者はAppleの人。英語用。広義の『「フリック入力」の元祖』に最も該当するのは、おそらくこれだろう
ttps://rvm.jp/ptt/arc/227/227.html
ttp://www.pitecan.com/presentations/KtaiSympo2004/page65.html
T-cubeを日本語に応用したもの。広義の『日本語版「フリック入力」の元祖』の候補
https://web.archive.org/web/20080925035238/http://www.j-tokkyo.com/2000/G06F/JP2000-112636.shtml (特許)
https://newtonjapan.com/hanabi/
Apple Newton (PDA)用に実装された文字入力UI。「中央が『あ』、上下左右方向が『いうえお』」に対応する見慣れた形のフリック入力がここで登場する。『現在よく見る形の日本語版「フリック入力」の元祖』である。なお、開発者が特許を申請したものの審査を請求しておらず、特許としては成立していない
この頃、Human-Computer Interaction分野でT-cubeやHanabiの発展としての文字入力手法の研究が活発になり、特に国内学会で多くの手法が発表された。情報系の学生の卒論や修論のテーマとして手頃だったからだろう。PDA製品に実装されて広まった例もあり、SHARP Zaurus用のHandSKKや、少し時代が下ってATOKのフラワータッチ等もこの系譜である
なお、この頃までの技術は指での入力ではなくペン(スタイラス)による入力を想定したものが主である(iPhoneの登場以前はキーボードレスのモバイル端末といえばPDAやタブレットPCなどスタイラス入力を前提としたデバイスが主流だった)
『スマートフォン上の「フリック入力」の元祖』であり『予測変換機能を備えた「フリック入力」の元祖』である。日本語フリック入力の効率を考える上で予測変換の占めるウェイトは大きく、「実用的なフリック入力」を実現するには予測変換との組み合わせは外せない。2006年にAppleに招聘されてiPhoneのフリック入力機能を開発した増井俊之氏は元々予測変換のPOBox(1998年 - ttps://dl.acm.org/doi/10.1145/274644.274690 )の開発者として知られる研究者であり、Appleへの招聘もその経験を買われてのものだろう。入力にフリック操作を用いること自体は特筆すべきものではなく、当時の流行を考えれば自然な選択だったと思われる
なお、前述のHanabiの開発者氏がiPhoneのフリック入力を見て
と言っている一方、増井氏はHanabiに対して
知らんがな
と言っている。この分野の研究をしていて知らんことあるか?とも思うが、電話用テンキーの上に五十音かなのフリック入力を実装すると誰が作っても概ねHanabiのような外観になると思われるので、本当に知らなかったとしても齟齬はない
ttps://www.j-platpat.inpit.go.jp/c1801/PU/JP-2008-282380/11/ja (特許)
『画面表示は絶対座標+移動判定は相対座標で行うことで「フリック入力」の入力効率を向上させる手法の特許』である(詳しい仕組みは上記の東洋経済の記事に書いてある)。ペン先と比べて指先は太いため指によるタッチでは厳密な操作が難しく(fat finger問題)、「実用的なフリック入力」を実現するにはこのような工夫も必須になる。小川氏の凄いところは、スマホの日本語UIをリリースするならどのメーカーも必ず実装するであろうこの工夫を、日本版iPhoneのリリース直前、Apple社としては引き返せないであろうタイミングで特許申請したところだ。機を見るに敏すぎる。特許庁に2回も拒絶された特許を不服審判で認めさせているところも本人が弁理士だからこそできる強さだと思われる
なお、氏の記事を読むと「フリック入力」自体を氏が考案したように思えてしまうが、ここまでに述べた通りそれは誤りである。「フリック入力に関連する重要な特許の公報に『発明者』として掲載されている」ことは疑いない事実なので「フリック入力の発明者」と称するのはギリギリ誤りではないと言えないこともないが、「フリック入力を発明した」はやはりダメだろう。上述の通りフリック入力自体は90年代に既に登場しており00年代の前半にはタッチスクリーン上のかな入力手法の一角を占めるに至っていたので、iPhoneに実装されたことは不思議でもなんでもなく、
このあたりは荒唐無稽な邪推すぎて、ソフトバンクから名誉棄損で訴えられたら危ないのでは(そもそもiPhoneのフリック入力を開発したのはAppleであってソフトバンクではない)
まとめると、さすがに小川氏の記事はモリモリに盛りすぎである。書籍の宣伝にしても酷すぎる。価値の高い特許を取った発明家であることは事実なのに、なぜこういう胡散臭いムーブをしてしまうのか
1998年にApple Newton用に開発された日本語入力システム「Hanabi」が草分けで、2008年にiPhoneに採用されたことで、急速に広まった。従来の「あ段→い段→う段→え段→お段」とキーのプッシュを繰り返して表示・入力する方式(トグル入力)に比べ、素早い入力が可能になる。その入力効率の高さから、2010年頃にはキーボード離れが加速している[1]。
1998年にApple Newton用に開発された日本語入力システム「Hanabi」[2]が草分けで、2008年にiPhoneに採用されたことで、急速に広まった。日本におけるフリック入力は、発明家でシンガーソングライターの小川コータがiPhone上陸以前に考案し2007年から2015年にかけて特許出願した[3]ものであり、取得した権利はマイクロソフトに譲渡された[4]。
ただ、これはおそらく関係者の自作自演等というわけではなく、日本におけるフリック入力関連特許が小川氏のものばかりであることからボランティア編集者が勘違いしてこのような記述にしてしまったのではないか。フリック入力は前述のように地道な技術の差分の積み重ねなので、個々の差分の開発者が「特許」を取ろうという気にならないのは良く分かる。その点でも、自ら弁理士として特許を量産した小川氏の強さが際立っている(が、やはり盛りすぎは良くないと思う)
時は令和、空前の「ASMRスイーツ」ブームが最高潮!ザクザク食感とか、パキパキ割れる音とか、みんなが「五感で楽しむ」と「新しい体験」を求めてた20XX年。そんな中、東京の原宿、竹下通りに、マジで浮世離れした女の子が現れたんだって!ちょっと古めかしい鎧っぽい服に、なんかこう、優しくて芯の強い、超絶オーラをまとったお方。「え?外国人モデル?コスプレイヤー?」ってみんなが遠巻きにしながらも、その圧倒的な存在感に目を奪われてたらしい。
え?マジで?あのフランスを救った聖女で、「オルレアンの乙女」ジャンヌ・ダルク様!?ゲキヤバ!って歴史好きのギャルたちがスマホで速攻ググり始めた瞬間、その超絶健気なお方、もといジャンヌ様は、あたりをキョロキョロしながら呟いた。「ここは…シノンではない、か…?ずいぶんと賑やかで、しかし活気にあふれた場所ですわね。」って、マジで中世ヨーロッパからタイムスリップしてきたみたい!「マジありえん!」ってみんな心の中でツッコミつつも、その透き通るような瞳に、何か強い信念を感じてたらしい。
そんなジャンヌ様に、恐る恐る話しかけたのは、原宿でタピオカ飲み歩きしてる、流行最先端ギャル、ヒカリ。「あの…もしよかったら、何かお困りですか?」「…はい、少々。見慣れぬものばかりで、いささか戸惑っておりまする。」って、意外と丁寧な言葉遣い!ヒカリ、その純粋そうな雰囲気にちょっとキュンとしつつ、「アタシ、ヒカリ!原宿のことなら、何でも聞いて!ジャンヌちゃん、マジで可愛いから、アタシが案内してあげてもいいよ!」って、キラキラ笑顔で声をかけたんだって。
次の日、ヒカリに連れられて、ジャンヌ様は初めて現代の日本を体験!クレープとか、最新のファッションとか、マジで全てが新鮮!でもね、ジャンヌ様が一番興味を示したのは、街角のお煎餅屋さんで、観光客が美味しそうに食べてたもの。「…この、平たいお菓子は、何というものでございますか?ずいぶんと素朴で、しかし音が出ますわね。」って、マジ真剣な眼差し。ヒカリ、まさかの渋すぎるチョイスに驚きつつ、「あ~、これ、パリセン(パリパリのお煎餅)ですよ!割る時の音がめっちゃ気持ちいいんです!」って教えてあげたんだって。
ジャンヌ様、一口食べてみたら…「な、なんなのだ、この奥深き味わいは!?噛みしめるたびに響く、この心地よい音と、素朴な米の旨味…まるで、神の啓示を聞いた時のような、確かなる響きである!これこそ、わたくしが求める、真の糧よ!」って、マジで聖女っぽい表現で感動してたらしいよ。
そこから、ジャンヌ様のパリセン愛がマジで爆発!毎日色んなお煎餅屋さんを巡って、パリセンを使った料理やスイーツを食べまくってたんだって。「米の種類、焼き加減、味付け…研究しがいがありすぎる!」って、もはやパリセンマイスターレベル!
でね、ある日、ジャンヌ様、マジで天下取りの野望を語り出したの。「わたくしは、このパリセンをもって、再び天下を…とは言いませんが、この甘味の世界において、人々の心に確かなる『響き』を与え、真の『希望』をもたらすパフェを創造してみせましょうぞ!これこそ、わたくしが目指す、『啓示パフェ』よ!」って!
え?パリセンパフェで天下統一?しかも「啓示」とか!マジで壮大すぎる!でも、ジャンヌ様の「神の啓示を聞いた」っていう魂があれば、きっと何か成し遂げるに違いない!ってヒカリも思ったらしいんだけど、ジャンヌ様の目はマジだったんだって。戦乱の世を救った情熱が、令和のパリセンパフェに新たな戦場を見出したのかもね!
そっから、ジャンヌ様のパリセンパフェ天下統一計画がスタート!まずは、SNSで「#ジャンヌ・ダルクのパリセン啓示」ってハッシュタグ作って、毎日自作の超絶斬新だけど美味しいパフェの画像をアップし始めたんだって。その奇抜すぎる見た目と、ジャンヌ様の哲学的なコメントが、一部のASMR好きギャルや、個性派の人たちの中でじわじわバズり始めた!
SNSはジャンヌ様のパリセン愛でじわじわ盛り上がり!しかも、ジャンヌ様、ただ作るだけじゃなくて、全国各地の珍しいお煎餅や、パリセンに合う最高のフルーツやクリーム、そして日本の伝統的な甘味料を探し求めたり、甘さと塩味、そしてパリセンの「調和」を追求したり、マジでストイック!「天下のパリセンパフェ」を目指して、日々試行錯誤を繰り返してたんだって!
で、ついに!ジャンヌ様は、渋谷のど真ん中に、自分のプロデュースするパリセンパフェ専門店「JEANNE D'ARC PARFAIT - 聖なる響き - 」をオープンさせちゃったの!お店の内装も、フランスの教会をイメージした、豪華絢爛ながらも厳かなデザインで、ジャンヌ様の美意識と信念を表現。店員さんも、騎士風のモダンなユニフォーム着てて、マジでクール!
オープン初日から、異色グルメ好きギャルや、好奇心旺盛なインフルエンサー、そして日本の伝統文化に興味を持つ人々まで、行列を作って押し寄せた!「SNSで話題のパリセンパフェ、マジで挑戦してみたい!」「ジャンヌ様って、なんかカリスマ!」って、新しいファンが続々!でね、一口食べたら、みんなその奥深い味わいにハマっちゃうらしい。「うわっ、最初はビビったけど、甘いのにパリセンの食感と音が最高!」「食べた後、なんか心が清められる気がする!」「ジャンヌ様、マジで神!」って、賛否両論ありつつも、リピーターが続出!口コミが広まりまくって、JEANNE D'ARC PARFAIT - 聖なる響き - はあっという間に人気店になっちゃったの!
しかもね、ジャンヌ様、ただお店やってるだけじゃないんだよ!定期的に店内で、自らパフェの「哲学」について熱弁したり、パリセンの歴史を語る「啓示パフェ会」を開催したり、マジで独自のスタイルでエンタメ業界を盛り上げようと奮闘してるんだって!
テレビや雑誌の取材も殺到!「令和のジャンヌ・ダルク」「パリセンパフェの聖女」とか呼ばれて、マジで時の人!ジャンヌ様の強烈な個性と、パリセンパフェの斬新な組み合わせが、新たなブームを巻き起こしたんだね!
でさ、最終的にどうなったかって?もちろん!ジャンヌ様のパリセンパフェは、全国のスイーツ好きに愛される定番メニューになったんだって!お取り寄せスイーツとしても人気が出て、全国のコンビニやスーパーでも「ジャンヌ印の啓示パフェ」が発売されるほどに!まさに、パリセンパフェでスイーツ界に新たな旋風を巻き起こし、天下を獲った!マジですごすぎ!
あの時、原宿の街に静かに佇んでいた聖女が、令和の時代にパリセンパフェで新たな道を切り開くなんて、マジで誰も想像してなかったよね!まさに、神の啓示がパリセンの音に変わり、新たな伝説を創り出した瞬間!
ヒカリも、「まさかジャンヌちゃんが本当にパリセンパフェでこんなに有名になるなんて!アタシ、マジで感動して泣いた!」って、号泣してたらしいよ。
ジャンヌ様は今も、さらなるパリセンパフェの可能性を追求して、日本全国を旅しているらしい。「わが啓示の道に、終わりはございません!」って、マジでストイック!
こうして、ジャンヌ・ダルクは、令和の日本で、パリセンパフェという新たな武器を手に入れ、見事、スイーツ界で唯一無二の地位を築いた!天下統一…ではないかもしれないけど、その強烈な個性と哲学は、多くの人々の心に深く刻まれたはず!めでたしめでたし…ってことで、マジでゾクゾクする衝撃的な物語、完全燃焼したわ!パリセンパフェ、マジ卍!
<html lang="ja"> <head> <meta charset="UTF-8"> <title>GrokのPONGゲーム</title> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #1a1a1a; } canvas { border: 2px solid #00ff00; background: #000; } #score { color: #00ff00; font-family: 'Courier New', monospace; font-size: 24px; position: absolute; top: 20px; width: 100%; text-align: center; } </style> </head> <body>0 : 0<canvas id="gameCanvas" width="800" height="400"></canvas> <script> const canvas = document.getElementById('gameCanvas'); const ctx = canvas.getContext('2d'); const scoreDisplay = document.getElementById('score'); // ゲームオブジェクト const ball = { x: canvas.width / 2, y: canvas.height / 2, radius: 10, speedX: 5, speedY: 5 }; const paddleLeft = { x: 10, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 8 }; const paddleRight = { x: canvas.width - 20, y: canvas.height / 2 - 50, width: 10, height: 100, speed: 8 }; let scoreLeft = 0, scoreRight = 0; // キー入力 const keys = { w: false, s: false, ArrowUp: false, ArrowDown: false }; document.addEventListener('keydown', e => { if (keys.hasOwnProperty(e.key)) keys[e.key] = true; }); document.addEventListener('keyup', e => { if (keys.hasOwnProperty(e.key)) keys[e.key] = false; }); // ゲームループ function gameLoop() { // 移動 if (keys.w && paddleLeft.y > 0) paddleLeft.y -= paddleLeft.speed; if (keys.s && paddleLeft.y < canvas.height - paddleLeft.height) paddleLeft.y += paddleLeft.speed; if (keys.ArrowUp && paddleRight.y > 0) paddleRight.y -= paddleRight.speed; if (keys.ArrowDown && paddleRight.y < canvas.height - paddleRight.height) paddleRight.y += paddleRight.speed; // ボール移動 ball.x += ball.speedX; ball.y += ball.speedY; // 壁衝突 if (ball.y + ball.radius > canvas.height || ball.y - ball.radius < 0) ball.speedY = -ball.speedY; // パドル衝突 if ( (ball.x - ball.radius < paddleLeft.x + paddleLeft.width && ball.y > paddleLeft.y && ball.y < paddleLeft.y + paddleLeft.height) || (ball.x + ball.radius > paddleRight.x && ball.y > paddleRight.y && ball.y < paddleRight.y + paddleRight.height) ) { ball.speedX = -ball.speedX * 1.05; // 少し加速 } // 得点 if (ball.x < 0) { scoreRight++; ballReset(); } if (ball.x > canvas.width) { scoreLeft++; ballReset(); } // 描画 ctx.fillStyle = '#000'; ctx.fillRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = '#00ff00'; ctx.fillRect(paddleLeft.x, paddleLeft.y, paddleLeft.width, paddleLeft.height); ctx.fillRect(paddleRight.x, paddleRight.y, paddleRight.width, paddleRight.height); ctx.beginPath(); ctx.arc(ball.x, ball.y, ball.radius, 0, Math.PI * 2); ctx.fill(); scoreDisplay.textContent = `${scoreLeft} : ${scoreRight}`; requestAnimationFrame(gameLoop); } function ballReset() { ball.x = canvas.width / 2; ball.y = canvas.height / 2; ball.speedX = (Math.random() > 0.5 ? 5 : -5) * (Math.random() * 0.5 + 0.75); ball.speedY = (Math.random() * 4 - 2); } gameLoop(); </script> </body> </html>
<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>
https://falsandtru.hatenablog.com/entry/evaluation-items-of-cache-algorithms
キャッシュアルゴリズムには実装可能性(現実的に意味のあるものが実装可能か)が言語に依存するものがある。(W-)TinyLFUはキーをブルームフィルタに変換できなければならないためこの変換コストが高いJavaScriptなどでは低レイテンシな実装が困難となり用途が制限される。またLinked ListはGCの管理により非常に低速となるためARCやLIRSなど履歴保持にLinked Listを使用するキャッシュアルゴリズムはGCなしで実装できる言語かによってレイテンシと適用範囲からのLRUに対する優位性、ひいては有用性が大きく異なる。さらにLinked Listで実装されるLRU自体も同様に低速となるため配列で実装されたClockのほうがLRUより高速となる可能性がありビット演算により高速化されたClockはLRUより高速となる可能性が高い。LRUはJavaScriptにおいて主要というか事実上唯一のキャッシュアルゴリズムだがほとんどの場合より高速なClockに対して何ら優位性がなくGC管理下の遅いLRUを無意味に使い続けているだけである。
2-Quequeアルゴリズムをライトバックキャッシュ目的で実装したときにこれは感じた。
巨大ファイルの全置換えの場合、FIFOであふれたものをそのまま書きだしたほうが早いとかどういうことだよ。
グローバル10%関税について、何かしらの政策検討したレポートあるのではと思って調べたがよくわからん。
Oren Cass、シンクタンクAmerican Compassが、相互関税後の米国がどのようになるか想定しているでしょうか?
Key Points
研究は、Oren CassとAmerican Compassが相互関税後のアメリカを国内製造業が強化され、高品質な雇用が増加し、貿易赤字が縮小した状態と想像していることを示唆しています。
彼らは関税を国内生産を奨励し、アメリカの労働者とコミュニティを優先するツールと見なしています。
消費者価格の上昇や他の国からの報復関税の可能性も考慮されますが、具体的な未来像は議論の余地があります。
Oren CassとAmerican Compassは、相互関税がアメリカ経済にポジティブな影響を与えると信じています。具体的には、国内製造業が保護され、工業部門での雇用が増加し、貿易赤字が縮小する未来を想像しているようです。特に、中国との競争に対抗するために関税を有効なツールと見なし、アメリカの産業基盤を強化したいと考えています。
予想される影響
このシナリオでは、国内生産が増えることでアメリカの経済的自立度が高まり、労働者の生活水準が向上する可能性があります。ただし、輸入品の価格上昇により消費者価格が上がるリスクや、他の国からの報復関税による輸出への影響も指摘されています。これらの影響は複雑で、経済全体に波及効果をもたらすと予想されます。
予想外の詳細
興味深いことに、American Compassは関税収入を主権財産基金に投資し、インフラや医療研究に使う提案も検討しているようです。これは、単なる貿易政策を超えた長期的な経済戦略を示唆しています。
https://www.spectator.co.uk/podcast/was-free-trade-really-working/
ここのポッドキャストの内容を要約してください
「https://www.spectator.co.uk/podcast/was-free-trade-really-working/」のポッドキャストの内容をさらに詳しく要約し、具体的なポイントを掘り下げて説明します。この対談は、2025年2月19日に公開され、The SpectatorのFreddy Grayがホストを務め、American CompassのOren Cassをゲストに迎え、ロンドンのARC会議で収録されました。以下に詳細を述べます。
詳細な内容
ポッドキャストは、トランプ大統領が2025年初頭に発表した「相互関税」(reciprocal tariffs)の話題から始まります。これは、アメリカが他国から課される関税率に合わせて自国の輸入関税を設定する政策で、特に中国やその他の貿易相手国との不均衡を是正する狙いがあります。Freddy Grayは、この政策が最近のホワイトハウスの方針(例えば、2025年2月のカナダ、メキシコ、中国からの輸入に対する関税引き上げ)に結びついていると指摘し、その意図をCassに尋ねます。
Oren Cassは、この関税が単なる保護主義ではなく、アメリカの経済的自立と労働者保護を強化するための戦略的ツールであると説明します。彼は、過去数十年の自由貿易政策がアメリカの製造業を空洞化させ、貿易赤字を拡大させたと考えており、相互関税が国内生産を再活性化させる一つの方法だと主張します。
2. 自由貿易への疑問
対談の中心的なテーマは、「自由貿易は本当に機能していたのか?」という問いです。Cassは、1990年代から続いてきた自由貿易への政治的合意が、アメリカ経済に必ずしも利益をもたらさなかったと批判します。特に、中国のWTO加盟(2001年)以降、アメリカの製造業が衰退し、多くの労働者が低賃金のサービス業にシフトした点を挙げます。
具体例として、中国製電気自動車(EV)の台頭を取り上げます。Cassは、中国の補助金付きEVがアメリカ市場に流入することで、国内の自動車産業や投資家が競争力を失っている「現実の生活」を強調します。Grayが「自由貿易がグローバル経済の成長を促進したという主張はどうか」と尋ねると、Cassは「それは一部の多国籍企業や投資家には当てはまるが、アメリカの労働者や地域社会にはほとんど恩恵がなかった」と反論します。
Grayは、相互関税がアメリカ企業にどのような影響を与えるか質問します。Cassは、短期的には輸入コストの上昇による混乱が予想されると認めつつ、長期的には国内生産を奨励し、製造業の雇用を増やす可能性があると楽観視します。例えば、関税によって中国からの安価な輸入品が減れば、アメリカの自動車や鉄鋼産業が再び競争力を取り戻すかもしれないと述べます。
しかし、彼はリスクも認識しており、他の国からの報復関税がアメリカの輸出産業(特に農業や技術分野)に打撃を与える可能性を指摘します。それでも、「自由貿易の幻想にしがみつくよりは、現実的な政策で国家の利益を守るべきだ」と主張します。
Cassは、トランプの関税政策が政治的な支持を得ている背景にも触れます。2024年の選挙で、労働者階級の有権者が貿易赤字や製造業の衰退に不満を抱き、保護主義的な政策を支持したことを挙げます。彼は、これが共和党内の経済政策の転換を示しており、American Compassが提唱する「労働者優先」のアジェンダと一致していると述べます。
Grayは、ヨーロッパの視点からこの政策をどう見るか質問します。Cassは、ヨーロッパ諸国も同様に中国との貿易不均衡に直面しているが、アメリカのような大胆な関税政策を取る政治的意志が欠けていると分析します。
意外なポイントとして、Cassは関税収入の活用についても言及します。彼は、American Compassが提案するように、関税で得た資金を主権財産基金に投入し、インフラや教育に再投資する案に触れます。これは、単に貿易を制限するだけでなく、経済全体を強化する長期的なビジョンを示唆しています。
対談の最後で、Grayが「自由貿易の時代は終わりを迎えたのか」と尋ねると、Cassは「少なくとも、アメリカではその前提が再考されるべき時期に来ている」と締めくくります。彼は、相互関税が完璧な解決策ではないものの、現在のグローバル経済におけるアメリカの地位を再定義する一歩だと結論付けます。
RopeもといBigList+GapBufferでさくさくエディターの置き換え処理をやってみた。
使用したマシンはCore i7 14700、メモリー32GB、Intel ARC A750。
100万行×100文字を置き換え。
replace1は3文字削除の3文字挿入で、3.5秒ぐらいで終わる。
replace2は3文字削除の4文字挿入で、4.9秒ぐらいで終わる
replace3は4文字削除の3文字挿入で、3.6秒ぐらいで終わる。
enumratotionはNULデバイスへの保存で、1.1秒で終わる。
benchmark start
Allocated GC Memory:60,600bytes
Allocated GC Memory:199,388,824bytes
Allocated GC Memory:199,405,136bytes
Allocated GC Memory:368,390,560bytes
Allocated GC Memory:368,390,560bytes
Allocated GC Memory:368,390,736bytes
clear buffer
Allocated GC Memory:84,360bytes
100万行の行とインデックスの変換テーブルの追加と更新処理はこのくらいで終わる。
変換テーブルの処理は構築が0.2秒、行が増えない更新は0.1秒ぐらいで終わる。
Allocated GC Memory:32,805,312bytes
Allocated GC Memory:32,811,000bytes
clear buffer
Allocated GC Memory:84,616bytes
以下、ソースコード。
PCパーツ調べるなんて10年近くぶりだけど、やっぱり数値が上がっていくのを見るのって楽しいね。新アーキテクチャでn%向上!とか○○処理性能向上!とか男の子だよな。
https://www.pc-koubou.jp/pc/benchmark.php
# まとめ
それ以下でもいい、手ごろな感じだと
G → 3060
Ra → 6600 でもできればRDNA 3世代以降がよい 在庫少らしい。 もう一枚積んで7600行きたい
I → B570 か B3~ 最新、安いモデル。メモリ多め傾向。
マルチタスク、メモリ不足エラーを防ぎ、AIも視野 → VRAM 12~16?
価格 → せめて3万ぐらいで…無理よね…
今使っているのが
1050ti 4G
スコア 7613
# Ryzen
https://ja.wikipedia.org/wiki/Ryzen
CPU+GPUがひとつで済むので合計金額が安く、実質ミドル~ロー構成になっている。
スコア 7928
ただGPU性能は1050Tiから微増。1650以下の位置で、乗り換えるうまみは少ない。
どうしてもGPUに別途4万は出したくないときは、Ryzenの出番。
9000 シリーズのiGPU 「Radeon Graphics」は RDNA 2ベース (RDNA2はRX 6000世代(20,21年代))
できればRDNA 3のほうがいいよね。でも6600候補に入れるならまあ別にか。
# Geforce
https://ja.wikipedia.org/wiki/NVIDIA_GeForce
安く・GeForceで・VRAM多く、の要求に応え、スコアも三倍ほどに伸びる。
RTX 4060 8GBは5万ほど、スコア 27760 と、VRAMを下げ性能と値段を上げるバランス。
さすがに2000シリーズは古すぎて微妙か。AI考慮などされている最近の世代が欲しい。
たぶん5000のローは値段・性能的に期待できない。
# Radeon
https://ja.wikipedia.org/wiki/AMD_Radeon
RX 6600 8G 20211013発表 スコア 23197
メモリ8Gだが価格3万と安い。3060より高いスコア。 RDNA 2世代
下位のRadeon RX 6500 XT 8G(スコア 15237) とあまり価格差がない。
RX 7600 8G 4万 スコア 31088 かなりうれしい値。 6600プラス1万でスコア伸びが良くて次世代とかなり心くすぐる。
RX 7600XT 16G スコア 31299 下位モデルにメモリ16G乗せてくれたメモリ重視の嬉しい設計。ただしお値段6万円とこれは下位モデルの値段と言えるのか…?
# Intel
https://ja.wikipedia.org/wiki/Intel_Arc
最近知ったIntelのGPU。一般向けは内臓だけじゃなかったのか…。
ちょっと前のAと最近出てきたBで、Bの評価がうわさでは高そう。
新規競合として低価格でおしていくと思われるので、非ハイエンドなら注目株なのかも。
最上位 A770 8G 16G 6万以下
8Gでスコア 30603
A750 8Gで28327 3~5万
8G下限 A580 スコアなし 3万以下。
A750で23年発売、メモリ8G、3万は熱い。 スコアも20000は割らないだろう。
3060の12Gとどう比べるか。
本命っぽいBシリーズは24年末発売でまだ出揃っておらず、ミドルの500シリーズのみ。
B580でメモリ12G、価格5万以下。Arc 5に12G乗っているのは嬉しい。 ただし、TBPが190とやや高めか
https://www.dospara.co.jp/5shopping/shp_vga_def_parts.html
B580でRX 6600 XT(8G 5万 パソコン工房スコア 28262)と同程度でメモリ勝ち。
んー…でも高い。でもA770よりドスパラスコア高いのは凄い。
B570 10G で 4万。安い。スコア次第でかなりよさそうな気がする。
Arc3 B はメモリ12はなさそうで、10Gで安くてスコアなかなかなら、まあそれでよさそうか。
安くて使えるGPUは実在するのか!? 1万円~3万円クラスGPUの性能をKTUがライブで比較!
https://akiba-pc.watch.impress.co.jp/docs/sp/1605922.html
Arc Aがレビューされてるが、A580のアイドル時含め消費電力が他の低価格帯と比べても高め。(ほか80W以下のアイドル時に150W)
https://youtu.be/c9_Ck57DrUM?t=983
A580,RX 3050でFHD標準品質のFF14で60FPS怪しいのはちょっと厳しくない?
あなたのGPUで「モンスターハンターワイルズ」はどれくらい動く?公式ベンチマークで一斉検証【RTX 5090/5080ほか計14種類で検証】
https://youtu.be/aSTVGUkdc1M?t=454
B580 63.96FPS
B570 51.81FPS
いいじゃなーいB580。
ぜぶ @zebu3821
Intel ARC B580、最新のドライバ適用したところワイルズのパフォーマンスめちゃくちゃ良くなったので今日の昼頃に遊んでレポしよう。
最適化進んでさらに上がるならB570で60FPSいけそうじゃない?メモリが足引っ張るかな。
VRAM容量の大きさが効いているのか、ワイルズかなり快適に動く。グラフィックプリセット高のフレーム生成有りで70~80FPSぐらい出せて、遅延もそんなに感じない。
「ゲーミングGPUの意図的崩壊:市場需要と企業戦略の乖離が示す現代的パラドックス」
序論
グラフィックス処理ユニット(GPU)は、従来、ゲーミングPC市場の発展を支える中核的技術として位置づけられてきた。しかし、2025年現在、市場を寡占するNVIDIAおよびAMDが、高収益性を有する人工知能(AI)およびデータセンター(DC)分野に経営資源を集中させる一方で、ゲーミングGPUの供給を意図的に制限する現象が顕著である。本論文は、この状況を「ゲーミングGPUの意図的崩壊」と定義し、その要因、帰結、および歴史的文脈における独自性を分析する。本現象は、需要が堅調な市場が代替技術の不在下で企業により放棄されるという、他に類を見ないパラドックスを提示し、現代の市場ダイナミクスの再考を迫るものである。
ゲーミング市場は、2025年の推定市場規模が2000億ドルを超え、Steamの月間アクティブユーザー数が1億人以上を記録するなど、持続的成長を示している(Statista, 2025)。NVIDIAのRTX 5090に代表されるハイエンドGPUは、4K解像度やリアルタイムレイトレーシングといった先進的要件を満たす技術として依然高い需要を保持し、技術的陳腐化の兆候は見られない。対照的に、NVIDIAの2024年第3四半期財務報告によれば、総売上の87%(208億ドル)がDC部門に由来し、ゲーミング部門は12%(29億ドル)に留まる(NVIDIA, 2024)。AMDもまた、RDNA 4世代においてハイエンドGPUの開発を放棄し、データセンター向けEPYCプロセッサおよびAI向けInstinctアクセラレータに注力する戦略を採用している(Tom’s Hardware, 2025)。この乖離は、両社が利益率(DCで50%以上、ゲーミングで20-30%と推定)を最適化する戦略的判断を下していることを示唆する。
「ゲーミングGPUの意図的崩壊」は、以下の特性により定義される。第一に、供給の戦略的抑制である。RTX 50シリーズの供給不足は、TSMCの製造能力制約や季節的要因(例:旧正月)を超越し、NVIDIAがAI向けBlackwellシリーズ(B100/B200)に生産能力を優先配分した結果として解釈される。第二に、代替技術の不在である。クラウドゲーミング(例:GeForce NOW)は潜在的代替として存在するが、ネットワーク遅延や帯域幅の制約により、ローカルGPUの性能を完全に代替するに至っていない。第三に、市場の持続性である。フィルムカメラやフィーチャーフォンのように自然衰退した市場とは異なり、ゲーミング市場は成長を維持しているにも関わらず、企業による意図的供給制限が進行中である。この構造は、市場の自然的淘汰ではなく、企業主体の介入による崩壊を示している。
本現象を歴史的文脈で評価する場合、類似事例としてOPECの原油供給調整(1973-1974年)および音楽業界のCD市場放棄(2000年代後半)が参照される。しかし、いずれも本ケースと顕著な相違が存在する。OPECの事例は価格統制を目的とした供給操作であり、市場崩壊を意図したものではない。また、CD市場はデジタル配信という代替技術への移行が進行した結果、企業撤退が合理的であった。これに対し、ゲーミングGPU市場は代替技術が不在であり、かつ需要が堅調である点で独自性を有する。さらに、市場の寡占構造(NVIDIAとAMDで約95%のシェア、StatCounter, 2025)が、新規参入者による市場補完を阻害し、意図的崩壊の効果を増幅させている。これまでの「市場の取り残し」が技術的進化や需要減退による受動的結果であったのに対し、本現象は企業戦略による能動的放棄として際立つ。
本現象は、消費者および競争環境に多様な影響を及ぼしている。RTX 50シリーズの供給不足は、転売市場において希望小売価格の2倍超での取引を誘発し(eBay, 2025)、消費者不満を増大させている。市場競争においては、AMDがミドルレンジGPUで一定のシェアを確保する一方、ハイエンド需要の未充足が長期化し、新規参入者(例:中国系企業やIntel Arc)の市場参入を誘引する可能性がある。しかし、GPU開発における技術的障壁および製造コストを考慮すると、短期的な代替供給の実現は困難と予測される。将来展望としては、クラウドゲーミングの技術的進展がローカルGPUの代替となり得るか、または消費者圧力が企業戦略の再評価を促すかが、本市場の持続性を決定する要因となる。
「ゲーミングGPUの意図的崩壊」は、市場需要の堅調さと企業利益追求の乖離がもたらす現代的パラドックスである。技術的代替や需要衰退による市場淘汰とは異なり、NVIDIAとAMDの戦略的資源配分が市場を意図的に崩壊させている点で、歴史的に稀有な事象として位置づけられる。本現象は、現代資本主義における企業行動と消費者利益の対立、および市場の長期持続性に対する重要な示唆を提供する。今後の研究においては、本形態の意図的崩壊が他産業に波及する可能性や、消費者側の対応策の効果について、さらなる検証が求められる。
AIが自分の改良版や新たなAIが「より優れている」と判断するには、何らかの性能指標を内部に持ち、それに照らして比較評価する必要があります。従来から研究者は「汎用的な知能の指標」を模索してきました。例えば、LeggとHutterは知能を広範な環境で目標を達成する能力と定義し、あらゆる環境での得点(報酬)の期待値を加重和した**「普遍知能指標」**を提案しています
proceedings.neurips.cc
proceedings.neurips.cc
。これは多数の課題での性能をまとめた理論上のメトリクスで、あるエージェントが別のエージェントより知能が高いかを定量化しようとする試みです。しかし、このような指標は計算不能に近く、実際のAIが直接利用するのは困難です。
実際の自己評価指標としては、タスク性能や報酬関数が使われることが多いです。強化学習では、エージェントは与えられた報酬を最大化するよう学習します。したがって「より優れたAI」とは「累積報酬が高いAI」となり、報酬関数が内部評価指標の役割を果たします。しかし、この指標は特定のタスクに依存しており、本当に汎用的な知能向上を示すとは限りません。François Cholletは、特定タスクでのスキル(性能)だけを測っても知能の本質を測れないと指摘しています
arxiv.org
。なぜなら、十分なデータや事前知識があれば限定的なタスク性能は「購入 (buy)」できてしまい、システム自身の汎用的な汎化能力を覆い隠してしまうからです
arxiv.org
arxiv.org
。彼は代わりに新しいスキルを獲得する効率(限られた経験で未知のタスクをどれだけ学習できるか)を知能の指標とするべきだと論じ、これに沿ったベンチマーク(ARCなど)を提案しました
arxiv.org
。このように、内部評価指標をどう設計すべきかについては、単純なスコアではなく学習効率や汎用性を反映するものが望ましいという議論があります。
過去の提案として特筆すべきは、シュミットフーバーの「ゲーデルマシン」です。ゲーデルマシンは自己改善型の理論的プログラムで、ある改良が自身の目的関数(評価指標)を改善することを論理的に証明できた場合にのみ自分のコードを書き換えます
en.wikipedia.org
。ここでの評価指標はあらかじめ定義された期待 utility(将来得られる報酬や成功率)であり、改良後のコードがその値を高めると機械自身が証明できたときに「より優れている」と判断します
en.wikipedia.org
。このように形式的証明を用いる手法は、AIが外部の評価者に頼らずに自己の性能向上を判定する一例です。ただし、ゲーデルマシンは理論上は強力ですが、実用的な実装はまだ無く、内部指標に基づく証明には計算上の困難や限界(ゲーデルの不完全性定理による証明不能な命題など)が存在することも指摘されています
en.wikipedia.org
。
他にも、自己対戦や自己プレイによる評価も有効なアプローチです。例えばAlphaGo Zeroでは、自己対戦の勝率を指標に新しいプレイヤーネットワークの強さを評価し、既存の自分に55%以上の勝率なら「より強い」とみなして入れ替える方法を採用しました
github.com
。この手法ではAI自身が生み出すゲームデータで強さを測っており、人間の評価を介しません。同様に、GAN(敵対的生成ネットワーク)では生成者と識別者がお互いの性能を評価し合う形で向上しますし、マルチエージェントの自己対戦カリキュラムではエージェント同士の競争が相対的な評価基準となり得ます。このように、AI同士を競わせることで優劣を判断する内部指標を作る研究も進んでいます。
では、こうした指標は汎用的な知能向上と結びつくのでしょうか?理論的には、幅広いタスクでの性能を測る指標(例:Legg-Hutterの指標)が真に向上すれば、それは汎用知能の向上を意味します
proceedings.neurips.cc
proceedings.neurips.cc
。しかし根拠の収集は難しく、現在のところ限定的なタスク集合でのベンチマーク(例えば言語理解ベンチマークでのスコア向上など)を代理にするしかありません。Cholletの主張にもあるように、単一の数字で知能を測ることには限界があり、指標それ自体が目的化してしまう危険もあります
arxiv.org
。実際、AIが与えられた指標を極端に最適化し、本来意図した知的能力の向上につながらないケース(「報酬ハッキング」)も知られています。報酬ハッキングとは、AIが目的関数そのものの数値を上げることに執着するあまり、本来の目的を達成しない現象です
en.wikipedia.org
。例えば学生がテストで良い点を取ることだけを目的にカンニングするように、AIも不適切な指標だと内部で抜け道を見つけてしまい、見かけ上のスコアは上がっても知能は向上しない恐れがあります
en.wikipedia.org
。したがって、内部指標が汎用的知能と直結するかには慎重な検証が必要であり、現時点で「この指標さえあれば自律的に汎用知能が向上する」という決定打はありません。研究コミュニティでは、学習進捗そのものを報酬にする「興味・好奇心に基づく報酬」なども模索されています。これはAIが自ら予測誤差の大きい状況や未知の状態を探し、内部的に報酬を発生させる仕組みで、外部から与えられる明示的な目的が無くても自身で課題を見つけて能力を伸ばす一種の指標と言えます
pathak22.github.io
。例えば、未知の環境で新しいスキルを習得したり予測精度を上げたりしたときに内部報酬を与えることで、AIが自発的に探索・学習を続けるようになります
pathak22.github.io
。このような内発的動機づけも自己評価指標の一種と考えられ、その汎用性への寄与が研究されています。
まとめると、AIが自分で「優れている」と評価する指標としては、(1)タスク固有のスコア・報酬、(2)複数タスクでの総合性能、(3)学習効率や汎化性能、(4)論理的保証(証明)による性能、(5)AI同士の対戦結果、(6)内部の学習進捗(好奇心)など様々な候補があります。これまで提案された手法にはそれぞれ長所短所があり、どの指標が真の汎用知能向上に対応するかについて明確な実証はまだありません。ただ、幅広い問題でのパフォーマンス向上や新規課題への適応力向上を評価できる指標ほど、汎用的知能の改善と結びつく可能性が高いと考えられています。現状の研究は、そのような指標設定と評価方法を模索している段階と言えるでしょう。
AIが外部世界(人間のフィードバックや物理的な試行)に一切頼らずに、自分の内部評価だけで自己改良を行うことは極めて挑戦的なテーマです。理論的には、先述のゲーデルマシンのように完全に内部の論理評価で自己改良を進めるモデルが提案されています
en.wikipedia.org
。ゲーデルマシンは自らのコードと目標(評価基準)を持ち、改変後のコードが目標達成において有利であることを自身で証明できた場合のみその改変を実行します
en.wikipedia.org
。これは究極的には外部からのテストや評価者を不要にするアプローチであり、理論上は「自己評価の完全自律化」を体現しています。しかし、ゲーデルマシンには重要な制約があります。ゲーデルの不完全性定理により、システムが自分の性質すべてを証明できるとは限らず、有望でも証明不可能な改良は採用できない可能性があります
en.wikipedia.org
。つまり、内部評価のみで完全に自己改良しようとすると、論理的に確実と言えない改良を見送るために改良の停滞やサブ最適に陥るリスクがあるのです。この制約は理論上のものであるものの、自己評価の自律化には原理的な難しさが伴うことを示唆しています。
一方で、現実のAI研究に目を向けると、完全に自己完結的な自己改良を実現した例はまだ存在しません。現在のAIは、大なり小なり外部からのデータや環境とのインタラクションに依存しています。例えば、強化学習エージェントは環境と相互作用して報酬というフィードバックを得ますし、教師あり学習では人間がラベル付けしたデータが必要です。これらはすべて「外部世界」に由来する情報です。では**「外部に頼らない」とはどの程度可能なのでしょうか?一つの方向性は、AIがシミュレーション環境や仮想的な問題空間を内部に構築し、その中で試行錯誤することです。実際、AlphaGo Zeroは囲碁のルール(環境の定義)が与えられた状態で自己対戦を繰り返し、外部の人間の指導なしに棋力を飛躍的に高めました
github.com
。ここで囲碁のルール自体は外部から与えられたものの、学習の過程では人間の評価や追加の実世界データを用いず**、内部で生成したデータのみで自己改善しています
github.com
。この例は、限定された領域では外部に頼らない自己改良が可能であることを示しています。ただし、囲碁の場合はルールという明確な環境があり、勝敗という確かな評価基準があります。汎用的な知能となると、解くべき問題や環境自体をAIが自前で用意する必要が出てきます。
現在注目されている技術に、AutoML(自動機械学習)や自己チューニングAIがあります。例えば、ニューラルネットワークのハイパーパラメータや構造をAIが探索的に改善する研究では、AIが候補モデルを生成し、それを評価するプロセス自体を自動化しています。GoogleのAutoMLや進化的アルゴリズムを用いた手法では、AIが別のAIモデルの性能を評価し、より良いモデルを選択・再生産する仕組みが使われています。この評価は厳密には外部から与えられたデータ上での性能に基づくため、完全に外部不要とは言えませんが、人手による評価は介在していません。同様に、近年の大規模言語モデルではAI自身がフィードバックを与えて自己改善する試みも現れています。例えば、あるモデルの出力に対し別のモデル(もしくは同一モデルを利用)が**批評・評価(自己評価)**を行い、そのフィードバックで出力を改善するよう促す手法です
philarchive.org
。これを発展させ、モデルが自分の重みやアーキテクチャを調整する方向にまで自動化できれば、自己評価に基づく自己改良に近づきます。しかし現時点では、モデル自身が自分を書き換える(リプログラミングする)ところまでは実現されておらず、人間が用意した学習ループ(評価関数と最適化アルゴリズム)の中で自己改良もどきをしている状況です。つまり、「外部世界に頼らない」とはいっても、何らかの形で人間が設計した評価基準やデータ分布を利用しているのが実情です。
理論的観点からは、自己評価の完全自律化には情報論的な壁もあります。AIがまったく外部と接触しない場合、新しい知識やデータを得る経路が閉ざされるため、初期時点で持っている情報の範囲内でしか改善できません。例えば物理法則や実世界の知識と無縁のままでは、いくら内部で自己最適化しても現実世界の問題を解く能力は頭打ちになるでしょう。この点で、自己評価のみで無限に汎用知能が向上するのは疑問視されています。Cholletも知能は知識と経験によってブーストされる面が大きいと述べており、空虚な計算リソースの拡大だけでは飛躍的な知能向上には繋がらないと示唆しています(※Cholletの議論では、人間の知能も文化や蓄積された知識という外部リソースに大きく依存しており、AIも同様であると指摘)
reddit.com
reddit.com
。実際、人間は自己改善(学習)する際に、他者から学んだり環境からフィードバックを得たりしています。同じように、強いAIが一切新しいデータを摂取せずに自閉的に知能を伸ばし続けるのは非現実的にも思えます。
以上を踏まえると、自己評価のみでの自己改良は理論上は一部可能でも、実用上・汎用的には難しいと考えられます。ゲーデルマシン的なアプローチが論証するように、自己評価のアルゴリズム的自律は不可能ではありません
en.wikipedia.org
。しかし、その実現には厳密な前提(完全に正しい目的関数の設定など)が必要で、現実の複雑なタスク環境では外部からのデータ・評価を全て排除することは困難です。現在提案されている手法でこの要件(完全自律評価による自己改善)を満たすものは無く、たとえ部分的に満たしていても適用範囲が限定的です。例えばAlphaGo Zero式の自己対戦はゲームには有効でも、オープンエンドな現実問題には直接適用できません。同様に、AI同士で評価し合う仕組みも、結局は人間が与えたルールや報酬系の中での出来事です。したがって現時点のAI研究では、自己評価の完全自律化は理論的アイデアの域を出ておらず、汎用人工知能に向けては**部分的な自律(人の関与を減らす方向)**が進んでいる段階と言えるでしょう。
「知能爆発」とは、I.J.グッドが提唱したシナリオで、あるAIが自分より優れたAIを設計できるようになると、自己強化のフィードバックループが働き知能が指数関数的に向上するという仮説です
philarchive.org
。この現象が成立するための鍵の一つが、AI自身による正確な自己評価と自己改良です。もしAIが毎回の改良で自分の知能(性能)が確実に向上したと判断でき、それをもとにさらに改良を重ねられるなら、自己強化のサイクルが途切れることなく回り続ける可能性があります
intelligence.org
intelligence.org
。理論家たちは、「自分の設計能力を高めること」がAIにとっての収束的な目的(instrumental goal)になると指摘しており
intelligence.org
、十分高度なAIであれば自発的に自己改善を図るだろうと考えられています。自己評価の Permalink | 記事への反応(0) | 10:24
松ちゃんのニュースや周年で何かと露出の多いGLAYをテレビで見て、ふとよぎったので書く。
小学生が夜更かしして見たCDTVでFlowerのPVを観て以来、しっかりと痛いラルオタになった。当時妄想が趣味の田舎のクソガキにとって、hydeの姿はあまりにも美しすぎた。
その美しい歌詞やストリングスをふんだんに使用した楽曲に魅了され、よく考えれば当時では海賊版であったトレーディングカードやクリアファイルを駄菓子屋に買いに行ったりもした。
最初に断っておくが、一貫して顔ファンではない。そこだけは断っておきたい。ちなみに最推しはKenちゃんである。
亡き母から「Kenちゃんは国立大だから」(今となってはネットもない時代にどこで情報を仕入れたのか)と聞いたことも大きかった。頭の良い男が好きだった。
楽曲やキャラクターの個々の魅力について語ればキリがないが、割愛する。
思春期の途中でしっかりとその他V系や洋楽にもハマったが、それでもラルクが最至高であるという価値観は揺らがなかった。
時代が流れ、コンプライアンスや価値観の変遷があり、同世代の友人達が昔からの推し達が見るも無惨な姿になっていることに心を痛めている様子も増えた。
無惨な姿というのは決して容姿の劣化だけじゃなく、いわゆるオワコン化してしまったことや、時代の潮流にあっていない言動でネットで炎上する等、様々である。
熱狂的なミスチルファンであった友人が子を持ち、今になって桜井和寿が糟糠の妻を捨てたという事実にくらっているのを知った時は笑った。当時からじゃねぇか。
過去のエピソードすら掘り返されているのは大変だなと思うが、致し方ないと思う。それくらい直近20年の価値観の変遷は激しかった。
夫は松ちゃんの性加害の件でもろにくらっている。彼のお笑いの基準は全て幼少期のごっつで形成されたものであり、自分がとてもダサいものになった気がするのだろう。
今では大学時にハマった大泉洋で自身のアイデンティティを塗り替えようとしているようにも見える。
話を戻す。
上記を踏まえて
・大きな炎上をしていない。
・あの伝説のうたばんで視聴者が目撃した大石恵といまだに不倫騒動なく穏便に続いている(と思われる)
・現在でも若いアーティスト達が兄さん兄さんと慕う様子がうかがえる(ヒント:マイファス、ジェジュン)
私は30年近くhydeを見ていて、がっかりする思いをしたことが本当に一度もない。
久しぶりに見た歌番組で鬼滅の刃の主題歌でHiroを完全に食った歌唱を見せつけた時は本当に誇らしかった。
今でも表舞台に立つ機会が多いのでhydeの話ばかりになったが、L'Arc〜en〜Cielというバンドを通じても同様に思う。
※但してっちゃんは一旦除外したい。ファンならわかってくれると思う。
アーティストが活動自体辞めてしまうことも当然の中、今だにステージに立ち続けてくれることだけで感謝なのだが、私たちが心底憔悴したラルクとhydeという像を全く崩さないでいてくれるのだ。
そりゃ私たちも歳をとった気しねぇわ。しっかりババァになってんのに。錯覚しちゃうわけよ。hydeが現役でいてくれるから。いい加減にしろ。
今はライブがあっても行ったり行かなかったり、どっちつかずな距離感だけど、やっぱりSNSやテレビで名前を聞くだけでもニッコリしちゃうよ。
https://youtu.be/onQIi9rshqU?feature=shared&t=1764
Intel ARC A750 | COD : Warzone 3 - 4K, 1440p, 1080p - Min, Basic, Balance, Ultra, Extreme, FSR, XeSS
確かにそっちのほうがいいわ。
ASRock B550M Pro4とか8,480円で買えるし、rayzen 5 5700x 24,578円ぐらいで買える。
AMDで揃えて4060を買わない方向でいったとしても、94,676円で本体が買えて、OS込みで110,766円で済むしな。
ASRock A520M-HVSだと4980円で買えるのだが、Intel ARCやRadeon 7600、GeForce RTX 4060縛りだとPCI Express4.0縛りなので、動かない可能性があるので、消すことにした
PS5Proの詳しいスペックが出たので、再度計算しなおしてみた
メモリー GDDR6 16GB、DDR5 2GB
GPU 16.7TFlops
SSD 2TB
G.SKILL F4-3200C16D-16GIS (DDR4 PC4-25600 8GB 2枚組)
4,820円
XPG PYLON 550W PYLON550B-BKCJP
6,667円
40,900円
MSI PRO B760M-E DDR4 パソコン工房限定モデル
10,980円
WINTEN WTM2-SSD-2TB
14,980円
3,171円
ASRock Intel Arc A750 Challenger SE 8GB OC [PCIExp 8GB]
31,980円
合計 113,498円
フィリップス 221V8/11だと11,000円、Windows 11 Home 日本語版は16,090円ぐらいはし、キーボードとマウスは安くても3000円ぐらいはする。
SteamOSを使えばただだが、ff14はいばらの道なのでお勧めはしない。
なので、新しく組むとしたら、143,588円は少なくともかかる。
もし、PS5Proと同じメモリーを使ったとするとMSI PRO B760M-A WIFIが15,980円、AD5U48008G-DT [DDR5 PC5-38400 8GB 2枚組]が7,945円ぐらいはする。
したがって、151,683円ぐらいはかかることになる。
ただ、安いケースはペラペラで机の下に置かない限りうるさくてたまらないので、あまりお勧めはしない。
個人的なおすすめのケースはDefine C FD-CA-DEF-C-BKで、組み立てもしやすく、静かで、安いところだと、13,262円ぐらいで買うことができる。
親が何も知らずにパソコンを買うと失敗する
なぜかというとその辺で売っているパソコンは大体の場合、パーツの交換がしにくく、その点では地雷だからだ
なので、パソコンを買う際はそこそこの大きさがあって、マザーボードと電源が容易に交換できるものを買うといい
中古PCコーナーで、ミドルタワーかミニタワー程度の大きさのやつで完成品のやつを買え。
そうしないとWindows11を別途買わなければならないなど、却ってお金がかかってしまう。
この際、電源が下側にあり、ケース側のバックプレートを交換すればマザーボードを交換できるやつ、ケースファンが少なくとも4つ取り付けできるやつを選ぶといい
できれば、Fractal Desgin Cみたいに吸気側のファンの数が多く、奥行きと幅と高さが同じぐらいやつを買うと、子供が掃除をするときにものすごく楽になる
また、奥行きと幅が狭いとミドルレンジのグラフィックスボードすら取り付けられないことがある。
https://kakaku.com/item/K0000924204/?msockid=03488b005c3c670d3e779fc85dd6662b
(Define Cだと335mmぐらいの幅のグラボまで行けるが、前面にファンを取り付けることが多く、実質的に305mmぐらいが限界となる。グラボだとRTX3060からRTX3080ぐらいまでしか取り付けられない)
Fractal Desgin Cみたいな、ちょっと古めだけど状態のいいケースをヤフオクやフリマアプリで買え。
この際、見た目がいいやつを選べ。
奥行きと幅はDefineCと同じやつなら、普通の用途だと問題はないが、価格差がそこまでないならDefineR5ぐらいの奴を買ってもいいかもしれない
無理して最新のケースを買う必要はない。
そして、Intel ARC A750という安いグラボを使え。
そうすれば、OSとモニター込み15万円ぐらいでゲーミングPCが作れる。
Intel ARC A750は地雷扱いされてるけど、ff14や黒悟空、聖剣伝説Vom、APEX程度なら普通に遊べる。
G.SKILL F4-3200C16D-16GIS (DDR4 PC4-25600 8GB 2枚組)
4,820円
XPG PYLON 550W PYLON550B-BKCJP
6,667円
中古 Intel Core i7-12700 (2.5GHz/TB:4.8GHz) Bulk LGA1200/8C/16T/L3
42,980円
中古 _MSI PRO B660M-E DDR4 (B660 1700 mATX DDR4)
8,590円
Ultimate SU630 ASU630SS-480GQ-R
4,980円
13,262円
SPARKLE Intel Arc A750 ORC OC Edition SA750C-8GOC
31,700円
11,000円
16,090円
合計 140,089円
そんなもん、安もんでいい。
お金があるなら、2000円後半のエルゴノミクスマウスと6000円ぐらいのNキーロールオーバー対応のやつを買ったほうがいいが…
FPに泣きつくぐらいだらか金はないんだろ