متخصصان علم داده ها data scientists
Open in Telegram
ارتباط با ادمین @IDataScientist صفحه لینکدین https://www.linkedin.com/groups/6728779/
Show more1 426
Subscribers
No data24 hours
No data7 days
+830 days
Posts Archive
♨️ The World's Biggest Online Marketplaces
به #چین نکاه کنید:
وقتی جمعیت به قدرت اقتصادی تبدیل می شود
@toobabigdatascience
هوش مصنوعی مشاغلی را جمع می کند
که بمعنای واقعی کلمه #شغل نبودند!!!
#AI
@toobabigdatascience
Blockly | Google for Developers
https://developers.google.com/blockly
⬅️ چرا یوتیوب اولین مستند ایرانی به زبان #عبری را حذف کرد⁉️
ظاهرا روایت مستند و کوتاه ایرانی از جنگ ۱۲ روزه به مذاق یوتیوب(یا سهامداران بهودی آن )خوش نیآمده!
#پایندهایران
#جنگ
@toobabigdatascience
Researchers trick ChatGPT into prompt injecting itself | CSO Online
https://www.csoonline.com/article/4086965/researchers-trick-chatgpt-into-prompt-injecting-itself.html
🪩اتفاقا دیروز داشتم در مورد پروژه کلاد در سرن در جایی بین مرز فرانسه و سوییس می نوشتم که ناگهان
خبر آمد که تاکر کارلسون گفته : #ناتو با مهندسی آبوهوا علیه کشورها جنگ میکند
♨️دین وینیگتن دیشب مصاحبه تاکر کارلسون : برنامه مهندسی آب و هوا فرضیه توطئه نیست و ناتو سالهاست که از این تکنولوژی به عنوان ابزار جنگی علیه کشورهایی مثل ایران برای ایجاد قحطی مصنوعی، حذف باران، ازبین بردن منابع غذایی و برهم زدن جمعیت و بی ثبات سازی سیاسی و اجتماعی استفاده می کند..
....
⬅️وقتی از یادگیری عمیق تقویتی بتوان برای هدف قراردادن نقطه ای پهپاد های فوق پیشرفته استفاده کرد!
⬅️وقتی نتایج تحقیقات سرن، و بزرگترین مراکز تحقیقات دانشگاهی دنیا مستقیما در اختیار ناتو قرار می گیرد
چرا کسانی که بلدند ابرهای باران زا بسازند
نتوانند آنها را سترون و بی اثر کند‼️⁉️
آیا طبق کنوانسیون های جهانی مربوطه به ممنوعیت دست بردن در اقلیم و اب و هوای کشورها باید عمل کنند؟
می دانید اینگونه کنوانسيون های جهانی
اگر تهدیدی در آن زمینه واقعا وجود نداشته باشد
اصلا تشکیل نمی شوند⁉️
#ناتو
#سرن
#دستکاری_اقلیمی !
@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
#معمای_رشد :
رفاه ؟؟؟ از ما که گذشت
اعطایش کنید به نوه اش‼️
همانطور که دکتر نیلی میگویند ظاهرا در نهایت هم رفاه یک نفر اعطا می شود به نوه یکنفر دیگه یعنی نوه َش‼️
که خود او الان از رفاه برخوردار است و نوه اش هم از رفاهی که قرار است به نوه من که رفاه نداشتم برسد
می رسد به نوَه ش...
🤓
#GDP
#رشد_اقتصادی
#اختصادی !!!
@toobabigdatascience
چشم تهران روشن‼️
اونور اتوبوس خریداری شده_که_ نوشته بود:" این اتوبوسها از پولی که مردم بابت مالیات می دهند خریداری شده!"
🤓
#چشمروشنی
#اختصادی !!
@toobabigdatascience
♨️ #Regression Analysis Cheatsheet
#ML
#Algorithms
@toobabigdatascience
🎁 Top Data Science Tools By Function
#DataScience
@toobabigdatascience
‼️محدودیتهای امنیتی IPV6 چیست که هنوز هم از IPV4 با محدودیتهای بسیار استفاده می کنیم؟
چرا بطور گسترده از IPV6 استفاده نمی کنیم⁉️
#IPV6
#Internet
#TCPIP
@toobabigdatascience
🐔 قابل توجه سوسیس/کالباس خور های حرفه ای:
تهیه #سوسیس/#کالباس/همبرگر از ضایعات مرغ‼️
#فستفود
#اختصادی !
#شیراز
@toobabigdatascience
💸قیمت مسکن در تهران : هر متر مربع ۱۲۳ میلیون
♨️خبرگزاری فارس روز دوشنبه ۱۹ آبان، در گزارشی اعلام کرد میانگین قیمت هر مترمربع واحد مسکونی در تهران به حدود ۱۲۳ میلیون تومان رسیده است. بخش عمده آگهیها مربوط به املاک نوساز تا ۵ سال ساخت بوده و ۳۱٫۳٪ از کل آگهیها به واحدهای ۷۵ متری اختصاص دارد. این در حالی است که در سال ۱۴۰۱ میانگین هر مترمربع در پایتخت نزدیک به ۳۰ میلیون تومان ثبت شده بود؛ یعنی قیمت مسکن تهران در این بازه سهساله دستکم چهار برابر شده است.
#اختصادی !!
#مسکن
#تورم
@toobabigdatascience
#فرسودگی_شغلی چگونه ایجاد می شود⁉️
دکتر آدرخش مکری
@toobabigdatascience
Self-Adapting Language Models
https://jyopari.github.io/posts/seal
