en
Feedback
متخصصان علم داده ها data scientists

متخصصان علم داده ها data scientists

Open in Telegram
1 426
Subscribers
No data24 hours
No data7 days
+830 days
Posts Archive
♨️ The World's Biggest Online Marketplaces به #چین نکاه کنید: وقتی جمعیت به قدرت اقتصادی تبدیل می شود @toobabigdatascience
♨️ The World's Biggest Online Marketplaces به #چین نکاه کنید: وقتی جمعیت به قدرت اقتصادی تبدیل می شود @toobabigdatascience

هوش مصنوعی مشاغلی را جمع می کند که بمعنای واقعی کلمه #شغل نبودند!!! #AI @toobabigdatascience
هوش مصنوعی مشاغلی را جمع می کند که بمعنای واقعی کلمه #شغل نبودند!!! #AI @toobabigdatascience

⬅️ چرا یوتیوب اولین مستند ایرانی به زبان #عبری را حذف کرد⁉️ ظاهرا روایت مستند و کوتاه ایرانی از جنگ ۱۲ روزه به مذاق یوتیوب(یا سهامداران بهودی آن )خوش نیآمده! #پاینده‌ایران #جنگ @toobabigdatascience

🪩اتفاقا دیروز داشتم در مورد پروژه کلاد در سرن در جایی بین مرز فرانسه و سوییس می نوشتم که ناگهان خبر آمد که تاکر کارلسون گفته : #ناتو با مهندسی آب‌وهوا علیه کشورها جنگ می‌کند ♨️دین وینیگتن دیشب مصاحبه تاکر کارلسون : برنامه مهندسی آب و هوا فرضیه توطئه نیست و ناتو سالهاست که از این تکنولوژی به عنوان ابزار جنگی علیه کشورهایی مثل ایران برای ایجاد قحطی مصنوعی، حذف باران، ازبین بردن منابع غذایی و برهم زدن جمعیت و بی ثبات سازی سیاسی و اجتماعی استفاده می کند.. .... ⬅️وقتی از یادگیری عمیق تقویتی بتوان برای هدف قراردادن نقطه ای پهپاد های فوق پیشرفته استفاده کرد! ⬅️وقتی نتایج تحقیقات سرن، و بزرگترین مراکز تحقیقات دانشگاهی دنیا مستقیما در اختیار ناتو قرار می گیرد چرا کسانی که بلدند ابرهای باران زا بسازند نتوانند آنها را سترون و بی اثر کند‼️⁉️ آیا طبق کنوانسیون های جهانی مربوطه به ممنوعیت دست بردن در اقلیم و اب و هوای کشورها باید عمل کنند؟ می دانید اینگونه کنوانسيون های جهانی اگر تهدیدی در آن زمینه واقعا وجود نداشته باشد اصلا تشکیل نمی شوند⁉️ #ناتو #سرن #دستکاری_اقلیمی ! @toobabigdatascience

# به‌روزرسانی total_loss = policy_loss + 0.5 * value_loss self.optimizer.zero_grad() total_loss.backward() self.optimizer.step() # پاک کردن حافظه self.memory = {key: [] for key in self.memory} return total_loss.item() def train_drone_defense_agent(): """تابع اصلی برای آموزش عامل دفاع هوایی""" # ایجاد محیط env = DroneDefenseEnv(num_drones=5, num_defenders=3) state_dim = env.observation_space.shape[0] action_dims = [env.action_space.nvec[0]] * env.num_defenders + [2] * env.num_defenders # ایجاد عامل agent = PPOAgent(state_dim, action_dims) # پارامترهای آموزش num_episodes = 1000 update_frequency = 100 # به‌روزرسانی پس از هر 100 گام # ذخیره‌سازی نتایج episode_rewards = [] losses = [] print("شروع آموزش عامل دفاع هوایی...") for episode in range(num_episodes): state = env.reset() episode_reward = 0 step_count = 0 while True: # انتخاب عمل actions, log_probs, value, attention_weights = agent.get_action(state) # اجرای عمل در محیط next_state, reward, done, _ = env.step(actions) # ذخیره‌سازی انتقال agent.store_transition(state, actions, log_probs, value, reward, done) state = next_state episode_reward += reward step_count += 1 # به‌روزرسانی سیاست if step_count % update_frequency == 0 or done: if done: next_value = 0 else: _, next_value, _ = agent.get_action(state) loss = agent.update(next_value) losses.append(loss) if done: break episode_rewards.append(episode_reward) if episode % 50 == 0: print(f"اپیزود {episode}, بازده: {episode_reward:.2f}, میانگین بازده: {np.mean(episode_rewards[-50:]):.2f}") # رسم نمودارهای یادگیری plt.figure(figsize=(12, 4)) plt.subplot(1, 2, 1) plt.plot(episode_rewards) plt.title('بازده اپیزودها') plt.xlabel('اپیزود') plt.ylabel('بازده') plt.subplot(1, 2, 2) plt.plot(losses) plt.title('ضرر آموزش') plt.xlabel('به‌روزرسانی') plt.ylabel('ضرر') plt.tight_layout() plt.show() return agent, env def evaluate_agent(agent, env, num_episodes=10): """ارزیابی عامل آموزش‌دیده""" print("\nارزیابی عامل آموزش‌دیده...") for episode in range(num_episodes): state = env.reset() total_reward = 0 step = 0 while True: actions, _, _, attention_weights = agent.get_action(state) state, reward, done, _ = env.step(actions) total_reward += reward step += 1 if step % 10 == 0: env.render() if done: print(f"اپیزود ارزیابی {episode + 1}: بازده = {total_reward}, گام‌ها = {step}") break if name == "main": # آموزش عامل trained_agent, env = train_drone_defense_agent() # ارزیابی عملکرد evaluate_agent(trained_agent, env) # ذخیره مدل آموزش‌دیده torch.save(trained_agent.policy.state_dict(), 'drone_defense_policy.pth') print("مدل آموزش‌دیده ذخیره شد.")

self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu") self.policy = AttentionActorCritic(state_dim, action_dims).to(self.device) self.optimizer = optim.Adam(self.policy.parameters(), lr=lr) self.gamma = gamma self.clip_epsilon = clip_epsilon self.memory = { 'states': [], 'actions': [], 'rewards': [], 'values': [], 'action_probs': [], 'dones': [] } def get_action(self, state): state_tensor = torch.FloatTensor(state).unsqueeze(0).to(self.device) with torch.no_grad(): action_probs, value, attention_weights = self.policy(state_tensor) actions = [] log_probs = [] for probs in action_probs: dist = Categorical(probs) action = dist.sample() actions.append(action.item()) log_probs.append(dist.log_prob(action)) return actions, torch.stack(log_probs), value, attention_weights def store_transition(self, state, action, log_prob, value, reward, done): self.memory['states'].append(state) self.memory['actions'].append(action) self.memory['action_probs'].append(log_prob) self.memory['values'].append(value) self.memory['rewards'].append(reward) self.memory['dones'].append(done) def compute_advantages(self, next_value): rewards = np.array(self.memory['rewards']) dones = np.array(self.memory['dones']) values = np.array([v.item() for v in self.memory['values']]) advantages = np.zeros_like(rewards) returns = np.zeros_like(rewards) # محاسبه بازده‌های قطع‌شده running_return = next_value running_advantage = 0 for t in reversed(range(len(rewards))): if dones[t]: delta = rewards[t] - values[t] running_advantage = delta else: delta = rewards[t] + self.gamma * values[t+1] - values[t] running_advantage = delta + self.gamma * running_advantage advantages[t] = running_advantage returns[t] = advantages[t] + values[t] return advantages, returns def update(self, next_value): advantages, returns = self.compute_advantages(next_value) # تبدیل به تانسور states = torch.FloatTensor(np.array(self.memory['states'])).to(self.device) actions = torch.LongTensor(np.array(self.memory['actions'])).to(self.device) old_action_probs = torch.stack(self.memory['action_probs']).to(self.device) returns = torch.FloatTensor(returns).to(self.device) advantages = torch.FloatTensor(advantages).to(self.device) # محاسبه احتمال عمل‌های جدید new_action_probs_list = [] values = [] for state in states: action_probs, value, _ = self.policy(state.unsqueeze(0)) new_probs = torch.stack([probs[0, action] for probs, action in zip(action_probs, actions.T)]) new_action_probs_list.append(new_probs) values.append(value) new_action_probs = torch.stack(new_action_probs_list) values = torch.cat(values) # محاسبه نسبت احتمال ratio = torch.exp(new_action_probs - old_action_probs.detach()) # محاسبه ضرر PPO surr1 = ratio * advantages.unsqueeze(1) surr2 = torch.clamp(ratio, 1 - self.clip_epsilon, 1 + self.clip_epsilon) * advantages.unsqueeze(1) policy_loss = -torch.min(surr1, surr2).mean() # محاسبه ضرر ارزش value_loss = nn.MSELoss()(values.squeeze(), returns)

sensitive_radius = self.grid_size * 0.2 for i in range(self.num_drones): if self.drones_alive[i]: dist_to_center = np.linalg.norm(self.drones_pos[i] - sensitive_zone_center) if dist_to_center < sensitive_radius: reward -= 20 # جریمه سنگین برای نفوذ self.drones_alive[i] = False # بررسی پایان اپیزود done = (self.step_count >= self.max_episode_steps or np.sum(self.drones_alive) == 0 or np.all(self.ammo == 0)) # پاداش اضافی برای زنده ماندن پهپادها if done: reward -= np.sum(self.drones_alive) * 5 return self._get_observation(), reward, done, {} def render(self): plt.clf() # رسم پهپادها for i in range(self.num_drones): if self.drones_alive[i]: plt.plot(self.drones_pos[i][0], self.drones_pos[i][1], 'ro', markersize=8) # رسم مدافعان for i in range(self.num_defenders): plt.plot(self.drones_pos[i][0], self.drones_pos[i][1], 'bs', markersize=10) # نمایش مهمات plt.text(self.defenders_pos[i][0], self.defenders_pos[i][1] + 1, f'A:{self.ammo[i]}', fontsize=8) # رسم منطقه حساس circle = plt.Circle((self.grid_size/2, self.grid_size/2), self.grid_size * 0.2, color='r', fill=False, linestyle='--') plt.gca().add_patch(circle) plt.xlim(0, self.grid_size) plt.ylim(0, self.grid_size) plt.grid(True) plt.title('Drone Defense Simulation - DRL') plt.pause(0.01) class AttentionActorCritic(nn.Module): """شبکه عصبی با مکانیسم توجه برای عامل-منتقد""" def init(self, state_dim, action_dims, hidden_dim=128): super(AttentionActorCritic, self).init() self.state_dim = state_dim self.action_dims = action_dims self.total_actions = sum(action_dims) # لایه‌های مشترک برای استخراج ویژگی self.feature_extractor = nn.Sequential( nn.Linear(state_dim, hidden_dim), nn.ReLU(), nn.Linear(hidden_dim, hidden_dim), nn.ReLU(), ) # مکانیسم توجه self.attention = nn.MultiheadAttention(hidden_dim, num_heads=4) # لایه‌های سر عمل‌گر (Actor) self.actor_heads = nn.ModuleList([ nn.Sequential( nn.Linear(hidden_dim, hidden_dim//2), nn.ReLU(), nn.Linear(hidden_dim//2, dim), nn.Softmax(dim=-1) ) for dim in action_dims ]) # لایه‌های سر ارزش (Critic) self.critic = nn.Sequential( nn.Linear(hidden_dim, hidden_dim//2), nn.ReLU(), nn.Linear(hidden_dim//2, 1) ) def forward(self, state): features = self.feature_extractor(state) # اعمال توجه features = features.unsqueeze(0) # اضافه کردن بعد sequence attended_features, attention_weights = self.attention( features, features, features ) attended_features = attended_features.squeeze(0) # محاسبه توزیع عمل‌ها action_probs = [] for head in self.actor_heads: probs = head(attended_features) action_probs.append(probs) # محاسبه ارزش حالت value = self.critic(attended_features) return action_probs, value, attention_weights class PPOAgent: """الگوریتم PPO برای آموزش عامل دفاع هوایی""" def init(self, state_dim, action_dims, lr=3e-4, gamma=0.99, clip_epsilon=0.2):

import numpy as np import torch import torch.nn as nn import torch.optim as optim from torch.distributions import Categorical import gym from gym import spaces import matplotlib.pyplot as plt from collections import deque import random class DroneDefenseEnv(gym.Env): """محیط شبیه‌سازی دفاع هوایی در برابر پهپادهای پیشرفته""" def init(self, num_drones=5, num_defenders=3, grid_size=20): super(DroneDefenseEnv, self).init() self.num_drones = num_drones self.num_defenders = num_defenders self.grid_size = grid_size self.max_steps = 100 # فضای حالت: موقعیت پهپادها، موقعیت مدافعان، وضعیت مهمات self.observation_space = spaces.Box( low=0, high=1, shape=(num_drones * 2 + num_defenders * 2 + num_defenders,), dtype=np.float32 ) # فضای عمل: برای هر مدافع، انتخاب پهپاد هدف + تصمیم شلیک self.action_space = spaces.MultiDiscrete( [num_drones + 1] * num_defenders + [2] * num_defenders ) self.reset() def reset(self): self.step_count = 0 self.drones_pos = np.random.rand(self.num_drones, 2) * self.grid_size self.defenders_pos = np.random.rand(self.num_defenders, 2) * self.grid_size self.ammo = np.ones(self.num_defenders, dtype=int) * 2 # مهمات هر مدافع self.drones_alive = np.ones(self.num_drones, dtype=bool) return self._get_observation() def _get_observation(self): obs = [] # موقعیت پهپادها for i in range(self.num_drones): if self.drones_alive[i]: obs.extend(self.drones_pos[i] / self.grid_size) else: obs.extend([0, 0]) # موقعیت مدافعان for i in range(self.num_defenders): obs.extend(self.defenders_pos[i] / self.grid_size) # وضعیت مهمات obs.extend(self.ammo / 2.0) return np.array(obs, dtype=np.float32) def step(self, action): self.step_count += 1 reward = 0 # تفسیر عمل target_choices = action[:self.num_defenders] fire_choices = action[self.num_defenders:] # اجرای عملیات شلیک for defender_idx in range(self.num_defenders): target_drone = target_choices[defender_idx] fire_decision = fire_choices[defender_idx] if (fire_decision == 1 and self.ammo[defender_idx] > 0 and target_drone < self.num_drones and self.drones_alive[target_drone]): # محاسبه فاصله و احتمال اصابت distance = np.linalg.norm( self.defenders_pos[defender_idx] - self.drones_pos[target_drone] ) hit_probability = max(0, 1 - distance / (self.grid_size * 0.8)) if np.random.random() < hit_probability: self.drones_alive[target_drone] = False reward += 10 # پاداش برای نابودی پهپاد self.ammo[defender_idx] -= 1 reward -= 1 # هزینه شلیک # حرکت پهپادها به سمت اهداف for i in range(self.num_drones): if self.drones_alive[i]: # پهپادها به سمت مرکز منطقه حساس حرکت می‌کنند target_pos = np.array([self.grid_size/2, self.grid_size/2]) direction = target_pos - self.drones_pos[i] direction = direction / (np.linalg.norm(direction) + 1e-8) self.drones_pos[i] += direction * 0.5 # محاسبه جریمه برای پهپادهای نفوذی sensitive_zone_center = np.array([self.grid_size/2, self.grid_size/2])

⬅️سدکُشی! چقدر دیگر زمان داریم⁉️ #بحران_آب #نا‌ترازی @toobabigdatascience
⬅️سدکُشی! چقدر دیگر زمان داریم⁉️ #بحران_آب #نا‌ترازی @toobabigdatascience

#معمای_رشد : رفاه ؟؟؟ از ما که گذشت اعطایش کنید به نوه اش‼️ همانطور که دکتر نیلی میگویند ظاهرا در نهایت هم رفاه یک نفر اعطا می شود به نوه یکنفر دیگه یعنی نوه َش‼️ که خود او الان از رفاه برخوردار است و نوه اش هم از رفاهی که قرار است به نوه من که رفاه نداشتم برسد می رسد به نوَه ش... 🤓 #GDP #رشد_اقتصادی #اختصادی !!! @toobabigdatascience

چشم تهران روشن‼️ اونور اتوبوس خریداری شده_که_ نوشته بود:" این اتوبوس‌ها از پولی که مردم بابت مالیات می دهند خریداری شده!" 🤓
چشم تهران روشن‼️ اونور اتوبوس خریداری شده_که_ نوشته بود:" این اتوبوس‌ها از پولی که مردم بابت مالیات می دهند خریداری شده!" 🤓 #چشم‌روشنی #اختصادی !! @toobabigdatascience

♨️ #Regression Analysis Cheatsheet #ML #Algorithms @toobabigdatascience
♨️ #Regression Analysis Cheatsheet #ML #Algorithms @toobabigdatascience

🎁 Top Data Science Tools By Function #DataScience @toobabigdatascience
🎁 Top Data Science Tools By Function #DataScience @toobabigdatascience

‼️محدودیت‌های امنیتی IPV6 چیست که هنوز هم از IPV4 با محدودیت‌های بسیار استفاده می کنیم؟ چرا بطور گسترده از IPV6 استفاده نمی کنیم⁉️ #IPV6 #Internet #TCPIP @toobabigdatascience

🐔 قابل توجه سوسیس/کالباس خور های حرفه ای: تهیه #سوسیس/#کالباس/همبرگر از ضایعات مرغ‼️ #فست‌فود #اختصادی ! #شیراز @toobabigdatascience

💸قیمت مسکن در تهران : هر متر مربع ۱۲۳ میلیون ♨️خبرگزاری فارس روز دوشنبه ۱۹ آبان، در گزارشی اعلام کرد میانگین قیمت هر مترمربع
💸قیمت مسکن در تهران : هر متر مربع ۱۲۳ میلیون ♨️خبرگزاری فارس روز دوشنبه ۱۹ آبان، در گزارشی اعلام کرد میانگین قیمت هر مترمربع واحد مسکونی در تهران به حدود ۱۲۳ میلیون تومان رسیده است. بخش عمده آگهی‌ها مربوط به املاک نوساز تا ۵ سال ساخت بوده و ۳۱٫۳٪ از کل آگهی‌ها به واحدهای ۷۵ متری اختصاص دارد. این در حالی است که در سال ۱۴۰۱ میانگین هر مترمربع در پایتخت نزدیک به ۳۰ میلیون تومان ثبت شده بود؛ یعنی قیمت مسکن تهران در این بازه سه‌ساله دست‌کم چهار برابر شده است. #اختصادی !! #مسکن #تورم @toobabigdatascience

#فرسودگی_شغلی چگونه ایجاد می شود⁉️ دکتر آدرخش مکری @toobabigdatascience