はてなキーワード: tanhとは
地球は宇宙空間を動いているのだから、地球の進行方向と垂直方向では光の速さが変わるだろう。そう考えて実験してみたところ、どちらの速さも変わらなかった。つまり、どんな系でも光の速さは一定であるらしい。
これを式にするとこうなる。
光の速さをc, 時刻 t の間に光の進む距離を x として
x/t = c
式変形すると
ここで一旦休憩。座標系を回転させても'棒の長さは一定'という式を考えてみよう
x^2 + y^2 = const
かんたんのため z 方向は考えない
この時座系を回転させる式を行列で書くと
こうなる。(心の目で読んで欲しい)
という式を思い出すと
x'^2 + y'^2 = x^2 + y^2 = const
上の'棒の式'とは符号が逆だね。こんなときはsin cos ではなく sinh cosh を使う。
cosθ = ((exp iθ) + (exp -iθ))/2
sinθ = ((exp iθ) - (exp -iθ))/2
coshθ = ((exp θ) + (exp -θ))/2
sinhθ = ((exp θ) - (exp -θ))/2
計算すると
cosh^2 - sinh^2 = 1 になるのがわかると思う。
cos^2 + sin^2 = 1 とは符号が逆になってるね
光の速さが系を変換しても変わらないという式を行列で書くと
こうなる。 これがローレンツ変換。
棒の長さが一定、つまり空間回転は空間方向 (x,y,z)しか混ぜないけれど、
光のはやさが一定、つまりローレンツ変換は 時間と空間 (t, x ) を混ぜているでしょ?
速さ v で進むロケットを考えてみよう。
v=x/t
だ。
一方、ロケットには美加子さんが乗っていてその携帯電話の表示では地球を発ってから T時間後である。
Tを計算してみよう。
先程のローレンツ変換の式に代入すると
ここで x = ct を使ったよ。最後に cosh で全体を纏めると
になる。
ここまで誤魔化していたけど、cosh はロケットの速さ v で決まるパラメータで
1/cosh = \sqrt{1-(v/c)^2}
なんだ。天下りで申し訳ないけど、増田では式も図も書けないので導出は勘弁して欲しい
とにかくまとめると
T = t \sqrt{1-(v/c)^2}
だね。ロケットの速度 v は光速度以下なので T < t になる。
地上で待つ昇くんが大学生になっても美加子さんが中学生のままなのはこんなワケだね
v が大きくなるほど時間の遅れは大きくなるよ
Ωを仮に100次元の実ベクトル空間R^100とする。各次元は特定の神経活動パターンに対応する。
Ω = {ω ∈ R^100 | ||ω||₂ ≤ 1}
ここで||・||₂はユークリッドノルムである。τは標準的なユークリッド位相とする。
O : Ω → Ω
O(ω) = Aω / ||Aω||₂
ここでAは100×100の実行列で、||Aω||₂ ≠ 0とする。
S[ω] = -∫Ω p(x) log p(x) dx
S[O(ω)] ≤ S[ω] + log(det(AA^T))
dω/dt = F(ω) + G(ω, O)
F(ω) = -αω + β tanh(Wω)
G(ω, O) = γ(O(ω) - ω)
ここでα, β, γは正の定数、Wは100×100の重み行列、tanhは要素ごとの双曲線正接関数である。
g_ij(ω) = E[(∂log p(x|ω)/∂ω_i)(∂log p(x|ω)/∂ω_j)]
ここでE[・]は期待値、p(x|ω)は状態ωでの条件付き確率密度関数である。
ψ(x) = √(p(x)) exp(iθ(x))
Φ[ω] = min_π (I(X;Y) - I(X_π;Y_π))
ここでI(X;Y)は相互情報量、πは可能な分割、X_πとY_πは分割後の変数である。
勾配降下法を用いて定式化する:
ω_new = ω_old - η ∇L(ω_old, O)
L(ω, O) = ||O(ω) - ω_target||₂²
G = (V, E)
V = {v_1, ..., v_100}
E ⊆ V × V
各頂点v_iはω_iに対応し、辺(v_i, v_j)はω_iからω_jへの因果関係を表す。
このモデルはPythonとNumPyを用いて以下のように実装できる:
import numpy as np from scipy.stats import entropy from scipy.integrate import odeint import matplotlib.pyplot as plt class ConsciousnessModel: def __init__(self, dim=100): self.dim = dim self.omega = np.random.rand(dim) self.omega /= np.linalg.norm(self.omega) self.A = np.random.rand(dim, dim) self.W = np.random.rand(dim, dim) self.alpha = 0.1 self.beta = 1.0 self.gamma = 0.5 self.eta = 0.01 def observe(self, omega): result = self.A @ omega return result / np.linalg.norm(result) def entropy(self, omega): p = np.abs(omega) / np.sum(np.abs(omega)) return entropy(p) def dynamics(self, omega, t): F = -self.alpha * omega + self.beta * np.tanh(self.W @ omega) G = self.gamma * (self.observe(omega) - omega) return F + G def update(self, target): def loss(o): return np.linalg.norm(self.observe(o) - target)**2 grad = np.zeros_like(self.omega) epsilon = 1e-8 for i in range(self.dim): e = np.zeros(self.dim) e[i] = epsilon grad[i] = (loss(self.omega + e) - loss(self.omega - e)) / (2 * epsilon) self.omega -= self.eta * grad self.omega /= np.linalg.norm(self.omega) def integrated_information(self, omega): def mutual_info(x, y): p_x = np.abs(x) / np.sum(np.abs(x)) p_y = np.abs(y) / np.sum(np.abs(y)) p_xy = np.abs(np.concatenate([x, y])) / np.sum(np.abs(np.concatenate([x, y]))) return entropy(p_x) + entropy(p_y) - entropy(p_xy) total_info = mutual_info(omega[:self.dim//2], omega[self.dim//2:]) min_info = float('inf') for i in range(1, self.dim): partition_info = mutual_info(omega[:i], omega[i:]) min_info = min(min_info, partition_info) return total_info - min_info def causal_structure(self): threshold = 0.1 return (np.abs(self.W) > threshold).astype(int) def run_simulation(self, steps=1000, dt=0.01): t = np.linspace(0, steps*dt, steps) solution = odeint(self.dynamics, self.omega, t) self.omega = solution[-1] self.omega /= np.linalg.norm(self.omega) return solution def quantum_state(self): phase = np.random.rand(self.dim) * 2 * np.pi return np.sqrt(np.abs(self.omega)) * np.exp(1j * phase) # モデルの使用例 model = ConsciousnessModel(dim=100) # シミュレーション実行 trajectory = model.run_simulation(steps=10000, dt=0.01) # 最終状態の表示 print("Final state:", model.omega) # エントロピーの計算 print("Entropy:", model.entropy(model.omega)) # 統合情報量の計算 phi = model.integrated_information(model.omega) print("Integrated Information:", phi) # 因果構造の取得 causal_matrix = model.causal_structure() print("Causal Structure:") print(causal_matrix) # 観測の実行 observed_state = model.observe(model.omega) print("Observed state:", observed_state) # 学習の実行 target_state = np.random.rand(model.dim) target_state /= np.linalg.norm(target_state) model.update(target_state) print("Updated state:", model.omega) # 量子状態の生成 quantum_state = model.quantum_state() print("Quantum state:", quantum_state) # 時間発展の可視化 plt.figure(figsize=(12, 6)) plt.plot(trajectory[:, :5]) # 最初の5次元のみプロット plt.title("Time Evolution of Consciousness State") plt.xlabel("Time Step") plt.ylabel("State Value") plt.legend([f"Dim {i+1}" for i in range(5)]) plt.show()