آموزش برنامه‌نویسی پایتون و هوش مصنوعی
140 subscribers
358 photos
190 videos
41 files
172 links
🎯 یادگیری پایتون با رویکردی متفاوت
🚀 آموزش‌های کاملاً عملی و پروژه‌محور
💻 مسیر تبدیل شدن به یک برنامه‌نویس حرفه‌ای
🌟 فرقی نداره مبتدی هستی یا پیشرفته، از هر سطحی شروع کن و پایتون رو اصولی یاد بگیر
📩 ارتباط با ادمین: @YMahmoodian
09156519984
Download Telegram
سوالات پیشرفته‌تر-یادگیری عمیق (41–60)
41. ایجاد مدل شبکه عصبی با Keras
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential([ Dense(32, activation='relu', input_shape=(X_train.shape[1],)), Dense(16, activation='relu'), Dense(1, activation='sigmoid') ])
42. کامپایل مدل
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
43. آموزش مدل شبکه عصبی
model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
44. پیش‌بینی با شبکه عصبی
y_pred_nn = (model.predict(X_test) > 0.5).astype("int32") print(y_pred_nn)
45. ارزیابی دقت شبکه عصبی
loss, accuracy = model.evaluate(X_test, y_test) print(accuracy)
46. اضافه کردن Dropout برای جلوگیری از overfitting
from tensorflow.keras.layers import Dropout model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dropout(0.5), Dense(32, activation='relu'), Dense(1, activation='sigmoid') ])
47. آموزش مدل با EarlyStopping
from tensorflow.keras.callbacks import EarlyStopping early_stop = EarlyStopping(patience=5, restore_best_weights=True) model.fit(X_train, y_train, epochs=50, callbacks=[early_stop], validation_split=0.2)
48. شبکه عصبی با چند کلاس (Multi-class)
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(3, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
49. شبکه عصبی کانولوشنی (CNN) ساده برای تصاویر
from tensorflow.keras.layers import Conv2D, Flatten, MaxPooling2D model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(10, activation='softmax') ])
50. شبکه عصبی بازگشتی (RNN) ساده برای داده‌های زمانی
from tensorflow.keras.layers import SimpleRNN model = Sequential([ SimpleRNN(50, input_shape=(timesteps, features), activation='tanh'), Dense(1) ])
51. استفاده از LSTM برای پیش‌بینی سری‌های زمانی
from tensorflow.keras.layers import LSTM model = Sequential([ LSTM(50, input_shape=(timesteps, features)), Dense(1) ])
52. استفاده از embedding برای متن
from tensorflow.keras.layers import Embedding, GlobalAveragePooling1D model = Sequential([ Embedding(input_dim=10000, output_dim=64, input_length=maxlen), GlobalAveragePooling1D(), Dense(1, activation='sigmoid') ])
53. پیش‌بینی متن با مدل LSTM
y_pred_text = (model.predict(X_test) > 0.5).astype("int32")
54. استفاده از callbacks برای ذخیره بهترین مدل
from tensorflow.keras.callbacks import ModelCheckpoint checkpoint = ModelCheckpoint("best_model.h5", save_best_only=True) model.fit(X_train, y_train, epochs=20, callbacks=[checkpoint])
55. بارگذاری مدل ذخیره شده
from tensorflow.keras.models import load_model model = load_model("best_model.h5")
56. پیش‌بینی تصویر با CNN آموزش دیده
y_pred_img = model.predict(X_test_images)
57. استفاده از ImageDataGenerator برای افزایش داده‌ها
from tensorflow.keras.preprocessing.image import ImageDataGenerator datagen = ImageDataGenerator(rotation_range=20, horizontal_flip=True) datagen.fit(X_train_images)
58. محاسبه ماتریس درهم‌ریختگی برای multi-class
from sklearn.metrics import confusion_matrix cm = confusion_matrix(y_test, y_pred_classes)
59. رسم نمودار دقت و خطا در هر epoch
import matplotlib.pyplot as plt plt.plot(history.history['accuracy'], label='train') plt.plot(history.history['val_accuracy'], label='val') plt.legend() plt.show()
60. ذخیره تاریخچه آموزش مدل به CSV
import pandas as pd pd.DataFrame(history.history).to_csv("training_history.csv")
– ترکیبی و حرفه‌ای:
سوالات ترکیبی و حرفه‌ای (61–100)
61. شبیه‌ساز ATM با کلاس‌ها و منو
class ATM: def __init__(self, balance=0): self.balance = balance def deposit(self, amount): self.balance += amount def withdraw(self, amount): if amount <= self.balance: self.balance -= amount else: print("Insufficient balance") atm = ATM(1000) atm.deposit(500) atm.withdraw(200) print(atm.balance)
62. پیش‌بینی با مدل از فایل CSV ورودی
import pandas as pd X_new = pd.read_csv("new_data.csv") y_pred = model.predict(X_new)
63. ذخیره مدل TensorFlow به فرمت SavedModel
model.save("my_model")
64. بارگذاری مدل SavedModel
from tensorflow.keras.models import load_model model = load_model("my_model")
65. نرمال‌سازی داده‌ها با MinMaxScaler
from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() X_scaled = scaler.fit_transform(X)
66. نرمال‌سازی داده‌های جدید
X_new_scaled = scaler.transform(X_new)
67. استفاده از GridSearchCV برای انتخاب هایپرپارامتر
from sklearn.model_selection import GridSearchCV from sklearn.ensemble import RandomForestClassifier params = {'n_estimators':[50,100], 'max_depth':[5,10]} grid = GridSearchCV(RandomForestClassifier(), param_grid=params) grid.fit(X_train, y_train) print(grid.best_params_)
68. کاهش ابعاد با PCA
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_pca = pca.fit_transform(X)
69. نمایش داده‌ها بعد از PCA
import matplotlib.pyplot as plt plt.scatter(X_pca[:,0], X_pca[:,1], c=y) plt.show()
70. پیاده‌سازی شبکه GAN ساده
# Generator from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model input_gen = Input(shape=(100,)) x = Dense(128, activation='relu')(input_gen) output_gen = Dense(784, activation='sigmoid')(x) generator = Model(input_gen, output_gen)
71. تبدیل تصویر به آرایه برای CNN
from tensorflow.keras.preprocessing import image img = image.load_img("digit.png", target_size=(28,28), color_mode="grayscale") x = image.img_to_array(img)/255.0 x = x.reshape(1,28,28,1)
72. پیش‌بینی تصویر با مدل آموزش دیده CNN
pred = model.predict(x) print(pred.argmax())
73. ذخیره بردار ویژگی‌ها از یک لایه میانی
from tensorflow.keras.models import Model feature_model = Model(inputs=model.input, outputs=model.layers[-2].output) features = feature_model.predict(X_test)
74. استفاده از Tokenizer برای متن
from tensorflow.keras.preprocessing.text import Tokenizer tokenizer = Tokenizer(num_words=1000) tokenizer.fit_on_texts(texts) sequences = tokenizer.texts_to_sequences(texts)
75. Padding دنباله‌ها برای مدل LSTM
from tensorflow.keras.preprocessing.sequence import pad_sequences X_pad = pad_sequences(sequences, maxlen=100)
76. استفاده از Embedding در LSTM
from tensorflow.keras.layers import Embedding, LSTM, Dense model = Sequential([ Embedding(1000, 64, input_length=100), LSTM(32), Dense(1, activation='sigmoid') ])
77. محاسبه F1-score مدل
from sklearn.metrics import f1_score print(f1_score(y_test, y_pred_nn))
78. ذخیره ماتریس confusion به فایل CSV
import pandas as pd pd.DataFrame(cm).to_csv("confusion_matrix.csv")
79. رسم نمودار Loss و Accuracy با Seaborn
import seaborn as sns sns.lineplot(data=history.history['loss'], label='train_loss') sns.lineplot(data=history.history['val_loss'], label='val_loss')
80. ترکیب داده‌های مختلف با pandas برای آموزش
df = pd.concat([df1, df2], axis=0)
81. استفاده از مدل از پیش آموزش دیده (Pretrained) ResNet
from tensorflow.keras.applications import ResNet50 model = ResNet50(weights='imagenet')
82. استخراج ویژگی‌ها با مدل Pretrained
from tensorflow.keras.models import Model feat_model = Model(inputs=model.input, outputs=model.layers[-2].output) features = feat_model.predict(X_images)
83. فشرده‌سازی مدل با TFLite
import tensorflow as tf converter = tf.lite.TFLiteConverter.from_saved_model("my_model") tflite_model = converter.convert()
84. استفاده از EarlyStopping و ReduceLROnPlateau
from tensorflow.keras.callbacks import ReduceLROnPlateau reduce_lr = ReduceLROnPlateau(patience=3, factor=0.5)
85. ایجاد آموزش با داده‌های دسته‌بندی شده (Class Weights)
from sklearn.utils import class_weight weights = class_weight.compute_class_weight('balanced', classes=np.unique(y_train), y=y_train)
86. پیش‌بینی چند برچسبی (Multi-label)
model = Sequential([ Dense(64, activation='relu', input_shape=(X_train.shape[1],)), Dense(3, activation='sigmoid') ])
87. ذخیره پیش‌بینی‌ها به CSV
pd.DataFrame(y_pred, columns=["label"]).to_csv("predictions.csv", index=False)
88. اجرای مدل روی GPU با TensorFlow
import tensorflow as tf print(tf.config.list_physical_devices('GPU'))
89. نمایش شکل شبکه با plot_model
from tensorflow.keras.utils import plot_model plot_model(model, to_file='model.png', show_shapes=True)
90. استفاده از callbacks سفارشی برای ذخیره معیارها
class MyCallback(tf.keras.callbacks.Callback): def on_epoch_end(self, epoch, logs=None): print(f"Epoch {epoch}: val_acc={logs['val_accuracy']}")
91. محاسبه ROC AUC برای مدل باینری
from sklearn.metrics import roc_auc_score roc_auc_score(y_test, y_pred_nn)
92. تبدیل تصاویر رنگی به خاکستری برای CNN
X_gray = X_images.mean(axis=-1, keepdims=True)/255.0
93. استفاده از BatchNormalization
from tensorflow.keras.layers import BatchNormalization model = Sequential([ Dense(64, activation='relu'), BatchNormalization(), Dense(1, activation='sigmoid') ])
94. Dropout در شبکه CNN
Conv2D(32, (3,3), activation='relu'), Dropout(0.3)
95. افزایش داده متن با Synonyms Replacement
# جایگزینی واژه‌ها با مترادف‌ها برای data augmentation
96. ذخیره وزن‌های مدل به HDF5
model.save_weights("weights.h5")
97. بارگذاری وزن‌های ذخیره شده
model.load_weights("weights.h5")
98. استفاده از callbacks برای EarlyStopping + ModelCheckpoint
model.fit(X_train, y_train, epochs=50, callbacks=[early_stop, checkpoint])
99. استفاده از TensorBoard برای مانیتورینگ
from tensorflow.keras.callbacks import TensorBoard tensorboard = TensorBoard(log_dir='./logs')
100. محاسبه دقت مدل با scikit-learn
from sklearn.metrics import accuracy_score print(accuracy_score(y_test, y_pred_nn))
پروژه‌ها و مثال‌های عملی AI و Deep Learning




---

۱. تشخیص اعداد دست‌نویس (MNIST)

import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0

model = Sequential([
Flatten(input_shape=(28,28)),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])

model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=5, validation_split=0.1)
print("Accuracy:", model.evaluate(x_test, y_test)[1])


---

۲. تشخیص تصاویر گربه و سگ (Cats vs Dogs)

from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

train_datagen = ImageDataGenerator(rescale=1./255)
train_gen = train_datagen.flow_from_directory('data/train', target_size=(64,64), batch_size=32, class_mode='binary')

model = Sequential([
Conv2D(32, (3,3), activation='relu', input_shape=(64,64,3)),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(train_gen, epochs=5)


---

۳. تحلیل احساسات (Sentiment Analysis)

from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense

texts = ["I love this movie", "I hate this film", "Amazing!", "Terrible experience"]
labels = [1,0,1,0]

tokenizer = Tokenizer(num_words=100)
tokenizer.fit_on_texts(texts)
seqs = tokenizer.texts_to_sequences(texts)
seqs = pad_sequences(seqs, maxlen=5)

model = Sequential([
Embedding(100, 8, input_length=5),
LSTM(16),
Dense(1, activation='sigmoid')
])

model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
model.fit(seqs, labels, epochs=10)


---

۴. پیش‌بینی قیمت خانه‌ها (Regression)

from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

data = load_boston()
X, y = data.data, data.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

model = Sequential([
Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
Dense(1)
])
model.compile(optimizer='adam', loss='mse')
model.fit(X_train, y_train, epochs=50, validation_split=0.1)


---

۵. تولید متن ساده با RNN

from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, SimpleRNN, Dense
import numpy as np

text = "hello world hello deep learning"
tokenizer = Tokenizer()
tokenizer.fit_on_texts([text])
seqs = tokenizer.texts_to_sequences([text])[0]

X, y = seqs[:-1], seqs[1:]
X = np.array(X).reshape(1,-1)
y = np.array(y).reshape(1,-1)

model = Sequential([
Embedding(input_dim=len(tokenizer.word_index)+1, output_dim=10, input_length=X.shape[1]),
SimpleRNN(20, return_sequences=True),
Dense(len(tokenizer.word_index)+1, activation='softmax')
])
model.compile('adam', 'sparse_categorical_crossentropy')
# model.fit(X, y, epochs=200) # آموزش طولانی برای مثال واقعی


---

۶. تبدیل تصاویر رنگی به سیاه و سفید

import cv2
img = cv2.imread('color.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('gray.jpg', gray)


---
۷. تشخیص اعداد در تصاویر (Digit Recognition)

# مشابه MNIST بالا با CNN
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train.reshape(-1,28,28,1)/255.0, x_test.reshape(-1,28,28,1)/255.0

model = Sequential([
Conv2D(32,(3,3), activation='relu', input_shape=(28,28,1)),
MaxPooling2D(2,2),
Flatten(),
Dense(128, activation='relu'),
Dense(10, activation='softmax')
])
model.compile('adam', 'sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=3)


---

۸. شبیه‌ساز ATM با کلاس‌ها و منو

class Account:
def init(self, balance=0):
self.balance = balance
def deposit(self, amt):
self.balance += amt
def withdraw(self, amt):
if amt <= self.balance:
self.balance -= amt
else:
print("Insufficient funds")
def check_balance(self):
print("Balance:", self.balance)

acc = Account()
acc.deposit(100)
acc.withdraw(50)
acc.check_balance()


---

۹. سیستم پیشنهاد دهنده ساده

from sklearn.metrics.pairwise import cosine_similarity
import numpy as np

ratings = np.array([[5,3,0],[4,0,0],[1,1,0]])
similarity = cosine_similarity(ratings)
print(similarity)


---

۱۰. پیش‌بینی سرطان با دیتاست Breast Cancer

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report

data = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2)

clf = RandomForestClassifier()
clf.fit(X_train, y_train)
y_pred = clf.predict(X_test)
print(classification_report(y_test, y_pred))


---

۱۱. GAN برای تولید تصویر

# نمونه کوتاه (Pseudo-code، آموزش کامل طولانی است)
# generator = ...
# discriminator = ...
# gan = Sequential([generator, discriminator])
# gan.compile(optimizer='adam', loss='binary_crossentropy')
# آموزش GAN روی MNIST


---

۱۲. فیلتر کردن نویز تصویر با Autoencoder

# مشابه پروژه MNIST با اضافه کردن نویز و Autoencoder


---

۱۳. تشخیص دست خط (Handwriting Recognition)

# مشابه MNIST با EMNIST


---

۱۴. طبقه‌بندی لباس‌ها (Fashion MNIST)

from tensorflow.keras.datasets import fashion_mnist
(x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()
x_train, x_test = x_train/255.0, x_test/255.0


---

۱۵. پروژه ترجمه متن ساده (Seq2Seq)

# Encoder-Decoder LSTM (Pseudo-code برای مثال)


---

۱۶. تشخیص چهره با OpenCV

import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread('face.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imwrite('faces_detected.jpg', img)


---

۱۷. تشخیص ژست دست با MediaPipe

import mediapipe as mp
import cv2

mp_hands = mp.solutions.hands
hands = mp_hands.Hands()
cap = cv2.VideoCapture(0)

while True:
ret, frame = cap.read()
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = hands.process(frame_rgb)
if results.multi_hand_landmarks:
print(results.multi_hand_landmarks)
cv2.imshow("Hand", frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()


---

۱۸. پیش‌بینی سری زمانی (Time Series)

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
import numpy as np

data = np.array([i for i in range(100)])
X = np.array([data[i:i+5] for i in range(95)])
y = data[5:]
X = X.reshape((X.shape[0], X.shape[1], 1))

model = Sequential([LSTM(50, input_shape=(5,1)), Dense(1)])
model.compile('adam', 'mse')
model.fit(X, y, epochs=10)


---

۱۹. پردازش داده‌های صوتی (Speech Recognition)

import librosa
y, sr = librosa.load('audio.wav')
mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=13)
print(mfccs.shape)


---

۲۰. ایجاد چت‌بات ساده
responses = {
"سلام": "سلام! حال شما چطوره؟",
"خوبی؟": "من خوبم، مرسی! شما چطور؟",
"خداحافظ": "خداحافظ! روز خوبی داشته باشی.",
}

def chatbot(msg):
return responses.get(msg, "متوجه نشدم. لطفا دوباره بگویید.")

while True:
msg = input("شما: ")
if msg == "خداحافظ":
print("ربات:", chatbot(msg))
break
print("ربات:", chatbot(msg))

توضیح:

یک دیکشنری برای پاسخ‌ها داریم.

کاربر پیام می‌دهد و ربات پاسخ مناسب می‌دهد یا پیام پیش‌فرض می‌فرستد.

با تایپ خداحافظ برنامه پایان می‌یابد.
پروژه‌های ۲۱–۴۰
۲۱. پیش‌بینی قیمت خانه با Linear Regression
from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split from sklearn.datasets import load_boston import pandas as pd data = load_boston() X = pd.DataFrame(data.data, columns=data.feature_names) y = pd.Series(data.target) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = LinearRegression() model.fit(X_train, y_train) print("Score:", model.score(X_test, y_test))
۲۲. طبقه‌بندی ایمیل اسپم با Naive Bayes
from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB emails = ["Free money now", "Hi Bob, how are you?", "Win a car!", "Meeting at 10"] labels = [1, 0, 1, 0] # 1=spam, 0=ham vectorizer = CountVectorizer() X = vectorizer.fit_transform(emails) X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.25, random_state=42) model = MultinomialNB() model.fit(X_train, y_train) print("Score:", model.score(X_test, y_test))
۲۳. خوشه‌بندی مشتریان با KMeans
from sklearn.cluster import KMeans import numpy as np X = np.array([[5, 2], [1, 4], [3, 7], [8, 1]]) kmeans = KMeans(n_clusters=2, random_state=42) kmeans.fit(X) print(kmeans.labels_)
۲۴. تشخیص دست‌نویس با MNIST و MLP
from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split from sklearn.neural_network import MLPClassifier digits = load_digits() X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42) model = MLPClassifier(hidden_layer_sizes=(64,), max_iter=300) model.fit(X_train, y_train) print("Score:", model.score(X_test, y_test))
۲۵. تحلیل احساسات ساده با TextBlob
from textblob import TextBlob text = "I love AI but sometimes it is challenging." blob = TextBlob(text) print("Sentiment:", blob.sentiment)
۲۶. پیش‌بینی سری زمانی با ARIMA
import pandas as pd from statsmodels.tsa.arima.model import ARIMA data = pd.Series([120, 130, 125, 140, 150, 160]) model = ARIMA(data, order=(1,1,1)) model_fit = model.fit() print(model_fit.forecast(steps=3))
۲۷. خوشه‌بندی تصاویر با KMeans و PCA
from sklearn.datasets import load_digits from sklearn.decomposition import PCA from sklearn.cluster import KMeans digits = load_digits() X_pca = PCA(2).fit_transform(digits.data) kmeans = KMeans(n_clusters=10).fit(X_pca) print(kmeans.labels_)
۲۸. تشخیص اشیا با OpenCV و کپسول‌بندی رنگ‌ها
import cv2 import numpy as np img = cv2.imread("image.jpg") hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv, (36, 25, 25), (70, 255,255)) res = cv2.bitwise_and(img,img,mask=mask) cv2.imwrite("result.jpg", res)
۲۹. پیش‌بینی بیماری قلبی با RandomForest
from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import pandas as pd # فرضی df = pd.DataFrame({'age':[45,50,40],'chol':[230,210,180],'target':[1,0,0]}) X = df[['age','chol']] y = df['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42) model = RandomForestClassifier() model.fit(X_train, y_train) print(model.score(X_test, y_test))
۳۰. تولید متن ساده با GPT-2 (transformers)
from transformers import GPT2LMHeadModel, GPT2Tokenizer tokenizer = GPT2Tokenizer.from_pretrained("gpt2") model = GPT2LMHeadModel.from_pretrained("gpt2") input_text = "Artificial Intelligence is" inputs = tokenizer.encode(input_text, return_tensors="pt") outputs = model.generate(inputs, max_length=50) print(tokenizer.decode(outputs[0], skip_special_tokens=True))
۳۱–۴۰ در حوزه هوش مصنوعی و یادگیری ماشین/عمیق:
پروژه‌های ۳۱–۴۰
۳۱. تشخیص چهره با OpenCV
import cv2 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') img = cv2.imread('face.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x,y,w,h) in faces: cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2) cv2.imwrite('faces_detected.jpg', img)
۳۲. پیش‌بینی قیمت سهام با Linear Regression
import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.model_selection import train_test_split data = pd.read_csv('stock.csv') # فرضی X = data[['Open', 'High', 'Low']] y = data['Close'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = LinearRegression() model.fit(X_train, y_train) print(model.score(X_test, y_test))
۳۳. خوشه‌بندی متون با TF-IDF و KMeans
from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.cluster import KMeans docs = ["I love AI", "AI is the future", "I enjoy sports", "Football is fun"] vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(docs) kmeans = KMeans(n_clusters=2).fit(X) print(kmeans.labels_)
۳۴. تحلیل احساسات توییت‌ها با Vader
from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer analyzer = SentimentIntensityAnalyzer() text = "I am very happy with AI progress!" score = analyzer.polarity_scores(text) print(score)
۳۵. تولید تصویر با GAN ساده (PyTorch)
import torch from torch import nn class Generator(nn.Module): def __init__(self): super().__init__() self.main = nn.Sequential(nn.Linear(100, 256), nn.ReLU(), nn.Linear(256, 784), nn.Tanh()) def forward(self, x): return self.main(x) z = torch.randn(1, 100) gen = Generator() fake_image = gen(z) print(fake_image.shape) # خروجی 784 پیکسل (28x28)
۳۶. شناسایی اعداد MNIST با CNN (PyTorch)
import torch from torchvision import datasets, transforms from torch import nn, optim transform = transforms.Compose([transforms.ToTensor()]) train_data = datasets.MNIST(root='./data', train=True, download=True, transform=transform) X, y = train_data.data.float(), train_data.targets model = nn.Sequential(nn.Flatten(), nn.Linear(28*28, 128), nn.ReLU(), nn.Linear(128,10)) loss_fn = nn.CrossEntropyLoss() optimizer = optim.SGD(model.parameters(), lr=0.01)

آموزش کامل نیازمند حلقه epoch است، این فقط نمونه ساختار مدل است.


۳۷. سیستم توصیه‌گر ساده (Collaborative Filtering)
import pandas as pd from sklearn.metrics.pairwise import cosine_similarity ratings = pd.DataFrame({'User1':[5,0,3],'User2':[4,0,0],'User3':[1,2,0]}) similarity = cosine_similarity(ratings.fillna(0)) print(similarity)
۳۸. تشخیص شی با YOLO (OpenCV + pre-trained weights)
import cv2 net = cv2.dnn.readNet("yolov3.weights", "yolov3.cfg") layer_names = net.getLayerNames() output_layers = [layer_names[i[0]-1] for i in net.getUnconnectedOutLayers()] img = cv2.imread("image.jpg") blob = cv2.dnn.blobFromImage(img, 0.00392, (416,416), swapRB=True, crop=False) net.setInput(blob) outs = net.forward(output_layers) print("Number of detections:", len(outs))
۳۹. طبقه‌بندی گل Iris با Random Forest
from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split data = load_iris() X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2) model = RandomForestClassifier() model.fit(X_train, y_train) print(model.score(X_test, y_test))
۴۰. کاهش ابعاد با PCA و نمایش گرافیکی
from sklearn.decomposition import PCA import matplotlib.pyplot as plt from sklearn.datasets import load_iris data = load_iris() pca = PCA(n_components=2) X_pca = pca.fit_transform(data.data) plt.scatter(X_pca[:,0], X_pca[:,1], c=data.target) plt.show()
پروژه‌های ۴۱–۶۰
۴۱. پیش‌بینی فروش با Linear Regression و داده‌های زمان‌بندی
import pandas as pd from sklearn.linear_model import LinearRegression data = pd.read_csv('sales.csv') # فرضی: ستون 'Month' و 'Sales' X = data[['Month']] y = data['Sales'] model = LinearRegression() model.fit(X, y) print(model.predict([[13]])) # پیش‌بینی ماه ۱۳
۴۲. خوشه‌بندی مشتریان با KMeans (Customer Segmentation)
import pandas as pd from sklearn.cluster import KMeans data = pd.read_csv('customers.csv') # ستون 'Age' و 'SpendingScore' kmeans = KMeans(n_clusters=3) data['Cluster'] = kmeans.fit_predict(data[['Age','SpendingScore']]) print(data.head())
۴۳. تشخیص اعداد دست‌نویس با SVM (MNIST)
from sklearn import datasets, svm from sklearn.model_selection import train_test_split digits = datasets.load_digits() X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2) clf = svm.SVC() clf.fit(X_train, y_train) print(clf.score(X_test, y_test))
۴۴. پیش‌بینی قیمت خانه با Random Forest
import pandas as pd from sklearn.ensemble import RandomForestRegressor data = pd.read_csv('housing.csv') X = data[['Rooms','Area','Age']] y = data['Price'] model = RandomForestRegressor() model.fit(X, y) print(model.predict([[3,120,10]]))
۴۵. طبقه‌بندی اخبار با Naive Bayes
from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB texts = ["AI is great", "Python is awesome", "I hate bugs"] labels = [1,1,0] # 1=Positive, 0=Negative vectorizer = CountVectorizer() X = vectorizer.fit_transform(texts) model = MultinomialNB() model.fit(X, labels) print(model.predict(vectorizer.transform(["I love Python"])))
۴۶. ترجمه متن با Transformer ساده (Hugging Face)
from transformers import pipeline translator = pipeline("translation_en_to_fr") print(translator("Hello, how are you?")[0]['translation_text'])
۴۷. تولید متن با GPT-2 (Hugging Face)
from transformers import pipeline generator = pipeline('text-generation', model='gpt2') print(generator("Once upon a time", max_length=50))
۴۸. شناسایی اشیاء با MobileNet (TensorFlow/Keras)
import tensorflow as tf from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions import numpy as np from tensorflow.keras.preprocessing import image model = MobileNetV2(weights='imagenet') img = image.load_img('dog.jpg', target_size=(224,224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) preds = model.predict(x) print(decode_predictions(preds, top=3)[0])
۴۹. شناسایی احساسات با BERT
from transformers import pipeline nlp = pipeline("sentiment-analysis") print(nlp("I love AI progress!"))
۵۰. کاهش ابعاد با t-SNE و نمایش داده‌ها
from sklearn.manifold import TSNE import matplotlib.pyplot as plt from sklearn.datasets import load_iris data = load_iris() tsne = TSNE(n_components=2, random_state=42) X_tsne = tsne.fit_transform(data.data) plt.scatter(X_tsne[:,0], X_tsne[:,1], c=data.target) plt.show()
۵۱. پیش‌بینی نرخ ارز با LSTM (Keras)
import numpy as np from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense data = np.random.rand(100,1) # فرضی X = data[:-1].reshape((99,1,1)) y = data[1:] model = Sequential([LSTM(50, input_shape=(1,1)), Dense(1)]) model.compile(optimizer='adam', loss='mse') model.fit(X, y, epochs=10)
۵۲. شبکه GAN برای تولید دست‌خط (MNIST)
مشابه پروژه قبلی GAN، با تغییر داده‌ها به دست‌نویس MNIST.


۵۳. تحلیل خوشه‌ای تصاویر با KMeans (Feature Extraction با CNN)
from sklearn.cluster import KMeans import numpy as np from tensorflow.keras.applications.vgg16 import VGG16, preprocess_input from tensorflow.keras.preprocessing import image model = VGG16(weights='imagenet', include_top=False) img = image.load_img('cat.jpg', target_size=(224,224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) features = model.predict(x) features_flat = features.flatten().reshape(1, -1) kmeans = KMeans(n_clusters=2).fit(features_flat) print(kmeans.labels_)
۵۴. طبقه‌بندی تصاویر میوه با CNN ساده (Keras)
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense model = Sequential([ Conv2D(32, (3,3), activation='relu', input_shape=(64,64,3)), MaxPooling2D(), Flatten(), Dense(128, activation='relu'), Dense(3, activation='softmax') # سه کلاس میوه ])
۵۵. تشخیص اسپم ایمیل با Naive Bayes
from sklearn.feature_extraction.text import CountVectorizer from sklearn.naive_bayes import MultinomialNB emails = ["Free money", "Meeting at 10", "Win big prize"] labels = [1,0,1] # 1=Spam, 0=Ham vectorizer = CountVectorizer() X = vectorizer.fit_transform(emails) model = MultinomialNB() model.fit(X, labels) print(model.predict(vectorizer.transform(["Win a free trip"])))
۵۶. پیش‌بینی ترافیک با Recurrent Neural Network

مشابه پروژه LSTM، فقط داده‌های ورودی متوالی (Time Series Traffic) هستند.

۵۷. تحلیل سری‌های زمانی با Prophet
from prophet import Prophet import pandas as pd df = pd.DataFrame({'ds': pd.date_range(start='2025-01-01', periods=10), 'y':[10,12,15,14,16,18,17,19,21,22]}) m = Prophet() m.fit(df) future = m.make_future_dataframe(periods=5) forecast = m.predict(future) print(forecast[['ds','yhat']])
۵۸. طبقه‌بندی صدا با CNN 1D
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv1D, Dense, Flatten model = Sequential([ Conv1D(16, 3, activation='relu', input_shape=(1000,1)), Flatten(), Dense(10, activation='softmax') ])
۵۹. تشخیص حرکات دست با OpenCV و MediaPipe
import cv2 import mediapipe as mp mp_hands = mp.solutions.hands hands = mp_hands.Hands() cap = cv2.VideoCapture(0) ret, frame = cap.read() results = hands.process(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) print(results.multi_hand_landmarks)
۶۰. پیش‌بینی بیماری قلبی با Random Forest
import pandas as pd from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split data = pd.read_csv('heart.csv') X = data.drop('target', axis=1) y = data['target'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = RandomForestClassifier() model.fit(X_train, y_train) print(model.score(X_test, y_test))
پروژه‌های 61 تا 100 که مربوط به هوش مصنوعی، یادگیری ماشین و یادگیری عمیق هستند. این‌ها شامل مثال‌های عملی و قابل اجرا با پایتون و کتابخانه‌هایی مثل numpy, pandas, scikit-learn, tensorflow, keras خواهند بود.
پروژه 61–80: یادگیری ماشین پایه
61. پیش‌بینی قیمت خانه (Linear Regression)
from sklearn.linear_model import LinearRegression import numpy as np X = np.array([[1000], [1500], [2000], [2500]]) y = np.array([200000, 250000, 300000, 350000]) model = LinearRegression() model.fit(X, y) print(model.predict([[1800]]))
62. طبقه‌بندی گل‌ها (Iris Dataset)
from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier iris = load_iris() X, y = iris.data, iris.target model = DecisionTreeClassifier() model.fit(X, y) print(model.predict([X[0]]))
63. استانداردسازی داده‌ها
from sklearn.preprocessing import StandardScaler import numpy as np data = np.array([[1,2],[3,4],[5,6]]) scaler = StandardScaler() scaled = scaler.fit_transform(data) print(scaled)
64. تقسیم داده به آموزش و تست
from sklearn.model_selection import train_test_split X = [[1],[2],[3],[4],[5]] y = [1,2,3,4,5] X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) print(X_train, X_test)
65. الگوریتم k-NN
from sklearn.neighbors import KNeighborsClassifier X = [[0],[1],[2],[3]] y = [0,0,1,1] model = KNeighborsClassifier(n_neighbors=1) model.fit(X,y) print(model.predict([[1.1]]))
66. الگوریتم Naive Bayes
from sklearn.naive_bayes import GaussianNB X = [[1],[2],[3],[4]] y = [0,0,1,1] model = GaussianNB() model.fit(X,y) print(model.predict([[2.5]]))
67. الگوریتم SVM
from sklearn.svm import SVC X = [[0],[1],[2],[3]] y = [0,0,1,1] model = SVC() model.fit(X,y) print(model.predict([[1.5]]))
68. درخت تصمیم و تصویرسازی
from sklearn.tree import DecisionTreeClassifier, export_text X = [[0],[1],[2],[3]] y = [0,0,1,1] model = DecisionTreeClassifier() model.fit(X,y) print(export_text(model))
69. محاسبه دقت مدل
from sklearn.metrics import accuracy_score y_true = [0,1,1,0] y_pred = [0,1,0,0] print(accuracy_score(y_true, y_pred))
70. رگرسیون چند متغیره
from sklearn.linear_model import LinearRegression import numpy as np X = np.array([[1,2],[2,3],[3,4]]) y = np.array([3,5,7]) model = LinearRegression() model.fit(X,y) print(model.predict([[4,5]]))
71. PCA برای کاهش بعد
from sklearn.decomposition import PCA import numpy as np X = np.array([[1,2,3],[4,5,6],[7,8,9]]) pca = PCA(n_components=2) X_new = pca.fit_transform(X) print(X_new)
72. خوشه‌بندی K-Means
from sklearn.cluster import KMeans import numpy as np X = np.array([[1,2],[1,4],[5,6],[6,7]]) kmeans = KMeans(n_clusters=2) kmeans.fit(X) print(kmeans.labels_)
73. خوشه‌بندی Hierarchical
from scipy.cluster.hierarchy import dendrogram, linkage import matplotlib.pyplot as plt import numpy as np X = np.array([[1,2],[1,4],[5,6],[6,7]]) linked = linkage(X, 'single') dendrogram(linked) plt.show()
74. محاسبه ماتریس درهم ریختگی
from sklearn.metrics import confusion_matrix y_true = [0,1,0,1] y_pred = [0,1,1,1] print(confusion_matrix(y_true, y_pred))
75. cross-validation ساده
from sklearn.model_selection import cross_val_score from sklearn.linear_model import LogisticRegression import numpy as np X = np.array([[1],[2],[3],[4]]) y = np.array([0,0,1,1]) model = LogisticRegression() scores = cross_val_score(model, X, y, cv=2) print(scores)
76. GridSearch برای هایپرپارامتر
from sklearn.model_selection import GridSearchCV from sklearn.svm import SVC X = [[0],[1],[2],[3]] y = [0,0,1,1] params = {'C':[0.1,1,10]} grid = GridSearchCV(SVC(), param_grid=params) grid.fit(X,y) print(grid.best_params_)
77. بردارهای ویژگی با CountVectorizer
from sklearn.feature_extraction.text import CountVectorizer texts = ["I love AI", "AI is great"] vectorizer = CountVectorizer() X = vectorizer.fit_transform(texts) print(X.toarray())
78. TF-IDF ساده
from sklearn.feature_extraction.text import TfidfVectorizer texts = ["I love AI", "AI is great"] vectorizer = TfidfVectorizer() X = vectorizer.fit_transform(texts) print(X.toarray())
79. مدل ساده شبکه عصبی با Keras
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy as np X = np.array([[0],[1],[2],[3]]) y = np.array([0,0,1,1]) model = Sequential([Dense(1,input_dim=1,activation='sigmoid')]) model.compile(optimizer='adam', loss='binary_crossentropy') model.fit(X,y,epochs=50,verbose=0) print(model.predict(X))
80. پیش‌بینی چندکلاسه با شبکه عصبی
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy as np X = np.array([[0,0],[0,1],[1,0],[1,1]]) y = np.array([[1,0,0],[0,1,0],[0,1,0],[0,0,1]]) # one-hot model = Sequential([Dense(3,input_dim=2,activation='softmax')]) model.compile(optimizer='adam', loss='categorical_crossentropy') model.fit(X,y,epochs=100,verbose=0) print(model.predict(X))
پروژه‌های 81 تا 100: یادگیری عمیق پیشرفته، CNN، RNN، پردازش تصویر و NLP.
پروژه 81–100: یادگیری عمیق پیشرفته
81. شبکه عصبی کانولوشنی (CNN) برای MNIST
from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense from tensorflow.keras.utils import to_categorical (X_train, y_train), (X_test, y_test) = mnist.load_data() X_train = X_train.reshape(-1,28,28,1)/255.0 X_test = X_test.reshape(-1,28,28,1)/255.0 y_train = to_categorical(y_train) y_test = to_categorical(y_test) model = Sequential([ Conv2D(32,(3,3),activation='relu',input_shape=(28,28,1)), MaxPooling2D((2,2)), Flatten(), Dense(128,activation='relu'), Dense(10,activation='softmax') ]) model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) model.fit(X_train, y_train, epochs=3, batch_size=32, verbose=1) print(model.evaluate(X_test, y_test))
82. شبکه عصبی بازگشتی (RNN) ساده
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import SimpleRNN, Dense import numpy as np X = np.random.rand(100,10,1) y = np.random.rand(100,1) model = Sequential([ SimpleRNN(10, input_shape=(10,1)), Dense(1) ]) model.compile(optimizer='adam', loss='mse') model.fit(X,y,epochs=5)
83. LSTM برای پیش‌بینی سری زمانی
from tensorflow.keras.layers import LSTM X = np.random.rand(100,5,1) y = np.random.rand(100,1) model = Sequential([ LSTM(20, input_shape=(5,1)), Dense(1) ]) model.compile(optimizer='adam', loss='mse') model.fit(X,y,epochs=5)
84. GRU ساده
from tensorflow.keras.layers import GRU X = np.random.rand(50,4,1) y = np.random.rand(50,1) model = Sequential([GRU(10, input_shape=(4,1)), Dense(1)]) model.compile(optimizer='adam', loss='mse') model.fit(X,y,epochs=5)
85. Autoencoder ساده
from tensorflow.keras.layers import Input, Dense from tensorflow.keras.models import Model import numpy as np X = np.random.rand(100,20) input_layer = Input(shape=(20,)) encoded = Dense(10, activation='relu')(input_layer) decoded = Dense(20, activation='sigmoid')(encoded) autoencoder = Model(input_layer, decoded) autoencoder.compile(optimizer='adam', loss='mse') autoencoder.fit(X,X,epochs=10)
86. GAN ساده
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense import numpy as np # Generator generator = Sequential([Dense(16,input_dim=5,activation='relu'), Dense(1,activation='sigmoid')]) # Discriminator discriminator = Sequential([Dense(16,input_dim=1,activation='relu'), Dense(1,activation='sigmoid')])
(نمونه پایه GAN برای شروع)
87. پردازش متن با Embedding
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Embedding, Flatten, Dense import numpy as np X = np.random.randint(0,100, (10,5)) y = np.random.randint(0,2,(10,1)) model = Sequential([Embedding(input_dim=100, output_dim=8, input_length=5), Flatten(), Dense(1,activation='sigmoid')]) model.compile(optimizer='adam', loss='binary_crossentropy') model.fit(X,y,epochs=5)
88. پردازش متن با LSTM
from tensorflow.keras.layers import LSTM model = Sequential([ Embedding(input_dim=100, output_dim=8, input_length=5), LSTM(16), Dense(1,activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy')
89. تحلیل احساسات (Sentiment Analysis)
from sklearn.model_selection import train_test_split from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences texts = ["I love AI", "I hate bugs"] labels = [1,0] tokenizer = Tokenizer(num_words=100) tokenizer.fit_on_texts(texts) X = tokenizer.texts_to_sequences(texts) X = pad_sequences(X, maxlen=5) y = np.array(labels)
90. شبکه CNN برای متن
from tensorflow.keras.layers import Conv1D, MaxPooling1D model = Sequential([ Embedding(input_dim=100, output_dim=8, input_length=5), Conv1D(16, 3, activation='relu'), MaxPooling1D(2), Flatten(), Dense(1, activation='sigmoid') ]) model.compile(optimizer='adam', loss='binary_crossentropy')
91. پیش‌بینی تصویر با CNN سفارشی
# مشابه MNIST، اما می‌توانید داده‌های دلخواه را بارگذاری کنید
92. انتقال یادگیری (Transfer Learning) با VGG16
from tensorflow.keras.applications import VGG16 from tensorflow.keras.models import Model from tensorflow.keras.layers import Dense, Flatten base_model = VGG16(weights='imagenet', include_top=False, input_shape=(64,64,3)) x = Flatten()(base_model.output) x = Dense(10, activation='softmax')(x) model = Model(base_model.input, x)
93. طبقه‌بندی تصویر با ResNet50
from tensorflow.keras.applications import ResNet50 # مشابه مثال بالا
94. شناسایی اشیاء ساده با YOLO (پایه)
# می‌توان از کتابخانه yolov5 استفاده کرد
95. تشخیص چهره با OpenCV
import cv2 face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml') img = cv2.imread('image.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray,1.3,5) print(faces)
96. پیش‌بینی توالی با RNN
# مشابه LSTM/Gru، با داده‌های توالی
97. ترجمه متن ساده با Seq2Seq
# استفاده از LSTM encoder-decoder
98. شبیه‌سازی چت‌بات ساده
# استفاده از LSTM + Embedding
99. پیش‌بینی قیمت سهام با RNN
# مشابه LSTM سری زمانی
100. سیستم پیشنهاددهی ساده (Collaborative Filtering)
import numpy as np ratings = np.array([[5,3,0],[4,0,0],[1,1,0]]) user_mean = np.mean(ratings, axis=1).reshape(-1,1) ratings_diff = ratings - user_mean # مشابه SVD یا مدل‌های ساده پیشنهاددهنده
۱۰۰ نکته و ترفند حرفه‌ای پایتون (شماره ۱ تا ۱۰۰)



۱–۲۰: نکات و ترفندهای پایتون با کد

۱. swap دو متغیر بدون متغیر کمکی

a, b = 5, 10 a, b = b, a print(a, b) # 10 5

۲. معکوس کردن رشته با slicing

s = "Python" print(s[::-1]) # nohtyP

۳. معکوس کردن لیست با slicing

lst = [1, 2, 3] print(lst[::-1]) # [3,2,1]

۴. جمع و میانگین لیست با یک خط

lst = [1,2,3,4] print(sum(lst), sum(lst)/len(lst)) # 10 2.5

۵. پیدا کردن بیشترین و کمترین مقدار با یک خط

lst = [5,1,8,3] print(max(lst), min(lst)) # 8 1

۶. استفاده حرفه‌ای از enumerate

lst = ["a","b","c"] for idx, val in enumerate(lst, start=1): print(idx, val)

۷. ترکیب دو لیست با zip

names = ["Ali","Sara"] ages = [25,30] for n,a in zip(names, ages): print(n,a)

۸. بررسی اینکه همه یا یکی از مقادیر True است

lst = [0,1,2] print(all(lst), any(lst)) # False True

*۹. unpacking چند متغیر با rest

a, *rest, b = [1,2,3,4,5] print(a, rest, b) # 1 [2,3,4] 5

۱۰. ساخت دیکشنری از دو لیست

keys = ["a","b"] values = [1,2] d = dict(zip(keys, values)) print(d) # {'a':1,'b':2}

۱۱. merge کردن دو دیکشنری (Python 3.9+)

d1 = {"a":1} d2 = {"b":2} d3 = d1 | d2 print(d3) # {'a':1,'b':2}

۱۲. شمارش عناصر تکراری با collections.Counter

from collections import Counter lst = [1,2,2,3] print(Counter(lst)) # Counter({2:2,1:1,3:1})

۱۳. مرتب‌سازی دیکشنری بر اساس مقدار

d = {"a":3,"b":1} print(sorted(d.items(), key=lambda x: x[1])) # [('b',1),('a',3)]

۱۴. استفاده کوتاه از lambda

f = lambda x: x**2 print(f(5)) # 25

۱۵. map و filter با lambda

lst = [1,2,3,4] print(list(map(lambda x:x*2,lst))) # [2,4,6,8] print(list(filter(lambda x:x>2,lst))) # [3,4]

۱۶. reduce برای جمع یا ضرب لیست

from functools import reduce lst = [1,2,3,4] print(reduce(lambda x,y: x*y,lst)) # 24

۱۷. one-liner swap دو متغیر با tuple

a,b = 1,2; a,b = b,a; print(a,b) # 2 1

۱۸. بررسی نوع متغیر در یک خط

x = 10 print(type(x) is int) # True

۱۹. ساخت لیست از رشته با comprehension

s = "Python" lst = [c.upper() for c in s] print(lst) # ['P','Y','T','H','O','N']

۲۰. حذف فاصله‌ها از لیست رشته‌ها

lst = [" a "," b "] lst = [x.strip() for x in lst] print(lst) # ['a','b']

---

۲۱–۴۰: نکات حرفه‌ای پایتون

۲۱. تبدیل لیست به set برای حذف تکراری‌ها

lst = [1,2,2,3]
print(list(set(lst))) # [1,2,3]

۲۲. بررسی اینکه رشته با prefix یا suffix شروع/تمام می‌شود

s = "Python3"
print(s.startswith("Py"), s.endswith("3")) # True True

۲۳. استفاده از f-string برای قالب‌بندی حرفه‌ای

name = "Ali"
age = 25
print(f"My name is {name} and age is {age}")

۲۴. multi-line f-string

name = "Sara"
msg = f"""Hello {name},
Welcome to Python!"""
print(msg)

۲۵. join برای ادغام رشته‌ها

lst = ["a","b","c"]
print("-".join(lst)) # a-b-c

۲۶. split برای جدا کردن رشته

s = "a,b,c"
print(s.split(",")) # ['a','b','c']

۲۷. تبدیل عدد به رشته و بالعکس

n = 123
s = str(n)
print(s, int(s)+1) # '123' 124

۲۸. شمارش کاراکترها در رشته

s = "hello"
print(s.count("l")) # 2

۲۹. بررسی اینکه همه حروف رشته حروف الفبا هستند

s = "Hello"
print(s.isalpha()) # True

۳۰. بررسی اینکه همه کاراکترها عدد هستند

s = "123"
print(s.isdigit()) # True

۳۱. تبدیل همه حروف به بزرگ/کوچک

s = "Python"
print(s.upper(), s.lower()) # PYTHON python

۳۲. replace برای جایگزینی متن

s = "Python is fun"
print(s.replace("fun","awesome")) # Python is awesome

۳۳. استفاده از strip برای حذف فاصله‌های اضافی

s = " hello "
print(s.strip()) # hello

۳۴. حذف فاصله‌های سمت چپ و راست به طور جداگانه

s = " hello "
print(s.lstrip(), s.rstrip()) # 'hello ' ' hello'

۳۵. قالب‌بندی عدد با f-string و تعداد رقم

x = 3.14159
print(f"{x:.2f}") # 3.14

۳۶. قالب‌بندی عدد با padding

n = 5
print(f"{n:03}") # 005

۳۷. استفاده از slicing برای استخراج substring

s = "Python"
print(s[1:4]) # yth

۳۸. negative indexing

s = "Python"
print(s[-1], s[-3:-1]) # n ho

۳۹. دسترسی به آخرین عنصر لیست با -1

lst = [1,2,3]
print(lst[-1]) # 3

۴۰. حذف عنصر از لیست با pop

lst = [1,2,3]
lst.pop() # حذف آخرین
lst.pop(0) # حذف اولین
print(lst) # [2]


---

۴۱–۶۰: نکات حرفه‌ای پایتون

۴۱. حذف همه عناصر یک لیست

lst = [1,2,3] lst.clear() print(lst) # []

۴۲. گرفتن طول لیست، رشته یا دیکشنری
lst = [1,2,3] d = {"a":1,"b":2} s = "Python" print(len(lst), len(d), len(s)) # 3 2 6

۴۳. بررسی وجود عنصر در لیست یا رشته

lst = [1,2,3] s = "Python" print(2 in lst, "Py" in s) # True True

۴۴. مرتب‌سازی لیست

lst = [3,1,2] lst.sort() print(lst) # [1,2,3]

۴۵. معکوس کردن لیست

lst = [1,2,3] lst.reverse() print(lst) # [3,2,1]

۴۶. کپی کردن لیست بدون تغییر لیست اصلی

lst1 = [1,2,3] lst2 = lst1.copy() lst2.append(4) print(lst1, lst2) # [1,2,3] [1,2,3,4]

۴۷. استفاده از enumerate برای گرفتن اندیس و مقدار همزمان

lst = ["a","b","c"] for i,val in enumerate(lst): print(i,val)

۴۸. استفاده از zip برای ترکیب دو لیست

a = [1,2] b = ["x","y"] for x,y in zip(a,b): print(x,y)

۴۹. ساخت لیست با comprehension

lst = [x**2 for x in range(5)] print(lst) # [0,1,4,9,16]

۵۰. شرط در list comprehension

lst = [x for x in range(10) if x%2==0] print(lst) # [0,2,4,6,8]

۵۱. ساخت دیکشنری با comprehension

d = {x:x**2 for x in range(5)} print(d) # {0:0,1:1,2:4,3:9,4:16}

۵۲. استفاده از get در دیکشنری برای جلوگیری از خطا

d = {"a":1} print(d.get("b",0)) # 0

۵۳. حذف کلید از دیکشنری با pop

d = {"a":1,"b":2} d.pop("a") print(d) # {"b":2}

۵۴. دسترسی به کلیدها، مقادیر و جفت‌ها

d = {"a":1,"b":2} print(d.keys(), d.values(), d.items())

۵۵. استفاده از set comprehension

s = {x**2 for x in range(5)} print(s) # {0,1,4,9,16}

۵۶. بررسی زیرمجموعه بودن set

a = {1,2,3} b = {2,3} print(b.issubset(a)) # True

۵۷. union و intersection در set

a = {1,2} b = {2,3} print(a|b, a&b) # {1,2,3} {2}

۵۸. copy و deepcopy برای اشیاء پیچیده

import copy lst1 = [[1,2],[3,4]] lst2 = copy.deepcopy(lst1) lst2[0][0] = 100 print(lst1, lst2) # [[1,2],[3,4]] [[100,2],[3,4]]

۵۹. استفاده از lambda برای توابع کوتاه

f = lambda x: x**2 print(f(5)) # 25

۶۰. استفاده از map برای اعمال تابع روی همه عناصر

lst = [1,2,3] squared = list(map(lambda x:x**2,lst)) print(squared) # [1,4,9]

۶۱–۸۰: نکات حرفه‌ای پایتون

۶۱. استفاده از filter برای فیلتر کردن لیست

lst = [1,2,3,4,5]
even = list(filter(lambda x: x%2==0, lst))
print(even) # [2,4]

۶۲. استفاده از reduce برای جمع عناصر

from functools import reduce
lst = [1,2,3,4]
total = reduce(lambda x,y: x+y, lst)
print(total) # 10

۶۳. مرتب‌سازی با کلید دلخواه (key)

lst = ["apple","banana","kiwi"]
lst.sort(key=len)
print(lst) # ['kiwi','apple','banana']

۶۴. معکوس کردن رشته با slicing

s = "Python"
print(s[::-1]) # "nohtyP"

۶۵. استفاده از any و all

lst = [True, False, True]
print(any(lst), all(lst)) # True False

۶۶. شمارش تعداد عنصر در لیست با count

lst = [1,2,2,3]
print(lst.count(2)) # 2

۶۷. تبدیل لیست به رشته با join

lst = ["Python","is","fun"]
s = " ".join(lst)
print(s) # "Python is fun"

۶۸. شکستن رشته به لیست با split

s = "Python is fun"
lst = s.split()
print(lst) # ['Python','is','fun']

۶۹. حذف فاصله‌های اضافی با strip

s = " hello "
print(s.strip()) # "hello"

۷۰. تعویض مقدار با replace در رشته

s = "Python is fun"
print(s.replace("fun","awesome")) # "Python is awesome"

۷۱. استفاده از enumerate با شروع از اندیس دلخواه

lst = ["a","b"]
for i,val in enumerate(lst, start=1):
print(i,val) # 1 a \n 2 b

۷۲. گرفتن اولین n عنصر لیست

lst = [1,2,3,4]
print(lst[:2]) # [1,2]

۷۳. گرفتن آخرین n عنصر لیست

lst = [1,2,3,4]
print(lst[-2:]) # [3,4]

۷۴. استفاده از iter و next برای پیمایش

lst = [1,2,3]
it = iter(lst)
print(next(it)) # 1
print(next(it)) # 2

۷۵. استفاده از enumerate و zip همزمان

names = ["Alice","Bob"]
ages = [25,30]
for i,(name,age) in enumerate(zip(names,ages)):
print(i,name,age)

۷۶. گرفتن بزرگ‌ترین و کوچک‌ترین عنصر لیست

lst = [3,1,4,2]
print(max(lst), min(lst)) # 4 1

۷۷. ساخت tuple از چند عنصر

t = (1,2,3)
print(t[0], t[-1]) # 1 3

۷۸. تبدیل tuple به لیست و بالعکس

t = (1,2)
lst = list(t)
t2 = tuple(lst)

۷۹. unpacking لیست یا tuple

a,b,c = [1,2,3]
print(a,b,c) # 1 2 3

۸۰. استفاده از _ برای نادیده گرفتن مقدار در unpacking

a, _, c = [1,2,3]
print(a,c) # 1 3


---

۸۱–۱۰۰: نکات پیشرفته و ترکیبی پایتون

۸۱. استفاده از dict comprehension

squares = {x: x**2 for x in range(5)} print(squares) # {0:0,1:1,2:4,3:9,4:16}

۸۲. استفاده از set comprehension
unique = {x%3 for x in range(10)} print(unique) # {0,1,2}

۸۳. گرفتن عناصر منحصربه‌فرد لیست با set

lst = [1,2,2,3] unique = list(set(lst)) print(unique) # [1,2,3]

۸۴. مرتب‌سازی دیکشنری بر اساس مقدار

d = {'a':3,'b':1,'c':2} sorted_items = sorted(d.items(), key=lambda x: x[1]) print(sorted_items) # [('b',1),('c',2),('a',3)]

۸۵. ترکیب چند لیست با zip

names = ["Alice","Bob"] ages = [25,30] for name, age in zip(names, ages): print(name, age)

۸۶. استفاده از get برای دیکشنری با مقدار پیش‌فرض

d = {"a":1} print(d.get("b",0)) # 0

۸۷. حذف کلید از دیکشنری با pop

d = {"a":1,"b":2} val = d.pop("a") print(d, val) # {'b':2} 1

۸۸. بررسی وجود کلید در دیکشنری

d = {"a":1} print("a" in d, "b" in d) # True False

۸۹. استفاده از defaultdict

from collections import defaultdict d = defaultdict(list) d['a'].append(1) print(d) # defaultdict(<class 'list'>, {'a':[1]})

۹۰. استفاده از Counter برای شمارش عناصر

from collections import Counter lst = [1,2,2,3] count = Counter(lst) print(count) # Counter({2:2,1:1,3:1})

۹۱. مدیریت خطا با try-except

try: x = 1/0 except ZeroDivisionError: print("Cannot divide by zero")

۹۲. finally برای اجرای نهایی

try: x = 1 finally: print("Always executed")

۹۳. ایجاد کلاس ساده

class Person: def init(self, name): self.name = name p = Person("Alice") print(p.name)

۹۴. متد کلاس و نمونه

class Person: def greet(self): print("Hello") p = Person() p.greet() # Hello

۹۵. ارث‌بری (Inheritance)

class Animal: def sound(self): print("Some sound") class Dog(Animal): pass Dog().sound() # Some sound

۹۶. بازنویسی متد کلاس پایه

class Dog(Animal): def sound(self): print("Woof") Dog().sound() # Woof

۹۷. استفاده از super()

class Dog(Animal): def sound(self): super().sound() print("Woof") Dog().sound() # Some sound # Woof

۹۸. متد استاتیک و کلاس‌متد

class MyClass: @staticmethod def static_method(): print("Static") @classmethod def class_method(cls): print("Class") MyClass.static_method() MyClass.class_method()

۹۹. استفاده از property برای getter و setter

class Person: def init(self, name): self._name = name @property def name(self): return self._name @name.setter def name(self, value): self._name = value p = Person("Alice") print(p.name) p.name = "Bob" print(p.name)

۱۰۰. استفاده از lambda و map

lst = [1,2,3] squared = list(map(lambda x: x**2, lst)) print(squared) # [1,4,9]
فصل هوش مصنوعی، یادگیری ماشین و یادگیری عمیق با پایتون را با ۱۰۰ سوال و جواب شروع می‌کنیم.

بخش ۱: مفاهیم پایه AI و ML (سوال ۱–۲۰)

۱. تفاوت AI، ML و DL چیست؟

AI: شبیه‌سازی رفتار هوشمند انسان.

ML: الگوریتم‌هایی که از داده یاد می‌گیرند.

DL: زیرمجموعه ML با شبکه‌های عصبی عمیق.


۲. انواع یادگیری ماشین کدامند؟

Supervised: داده‌های برچسب‌دار

Unsupervised: داده‌های بدون برچسب

Reinforcement: یادگیری با پاداش و تنبیه


۳. چرا باید داده‌ها را پیش‌پردازش کنیم؟

حذف مقادیر گمشده، نرمال‌سازی، تبدیل داده‌ها به فرم قابل استفاده توسط مدل


۴. تقسیم داده به train/test چگونه انجام می‌شود؟

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

۵. معیارهای سنجش مدل چه هستند؟

Accuracy، Precision، Recall، F1-score، ROC-AUC


۶. Overfitting چیست؟

زمانی که مدل روی داده‌های آموزش خیلی خوب عمل می‌کند اما روی داده‌های جدید ضعیف است.


۷. Underfitting چیست؟

زمانی که مدل نمی‌تواند حتی داده‌های آموزش را درست پیش‌بینی کند.


۸. Linear Regression چیست و چگونه با پایتون پیاده می‌شود؟

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
pred = model.predict(X_test)

۹. Logistic Regression چیست؟

برای مسائل دسته‌بندی (Classification) استفاده می‌شود.


۱۰. تفاوت Regression و Classification چیست؟

Regression پیش‌بینی عددی می‌کند.

Classification پیش‌بینی دسته‌ای انجام می‌دهد.


۱۱. Cross-validation چیست؟

روش ارزیابی مدل با تقسیم داده‌ها به چند بخش و آموزش و تست متناوب.


۱۲. Feature Scaling چیست و چرا مهم است؟

استانداردسازی یا نرمال‌سازی ویژگی‌ها برای الگوریتم‌های حساس به مقیاس مثل SVM و KNN.


۱۳. معیار MSE چیست؟

Mean Squared Error: میانگین مربعات خطا بین پیش‌بینی و مقدار واقعی.


۱۴. معیار RMSE چیست؟

ریشه مربع MSE؛ مقیاس آن با داده‌ها هم‌خوانی دارد.


۱۵. معیار R² چیست؟

ضریب تعیین: نشان می‌دهد چه درصدی از تغییرات داده‌ها توسط مدل توضیح داده می‌شود.


۱۶. Bias و Variance چیست؟

Bias: خطای سیستماتیک مدل

Variance: حساسیت مدل به تغییرات داده


۱۷. چرا باید داده‌های Missing Value را پر کنیم؟

برای جلوگیری از خطا هنگام آموزش مدل و بهبود دقت پیش‌بینی


۱۸. چه نوع داده‌هایی نیاز به Encoding دارند؟

داده‌های متنی یا دسته‌ای (Categorical) که باید به عدد تبدیل شوند


from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
y_encoded = le.fit_transform(y)

۱۹. Normalization و Standardization چه تفاوتی دارند؟

Normalization: مقیاس داده را بین ۰ تا ۱ تغییر می‌دهد

Standardization: داده را با میانگین صفر و انحراف معیار ۱ می‌کند


۲۰. چرا الگوریتم‌های ML به داده‌های تمیز حساس هستند؟

داده‌های نویزی یا غیرمرتبط باعث کاهش دقت مدل می شوند
یادگیری ماشین پیشرفته (سوال ۲۱–۵۰)
بخش ۲: یادگیری ماشین پیشرفته (سوال ۲۱–۵۰)
۲۱. Decision Tree چیست و چطور پیاده‌سازی می‌شود؟
from sklearn.tree import DecisionTreeClassifier model = DecisionTreeClassifier() model.fit(X_train, y_train) pred = model.predict(X_test)
۲۲. Random Forest چیست؟
ترکیبی از چند درخت تصمیم برای کاهش Overfitting و افزایش دقت.
۲۳. Gradient Boosting چیست؟
الگوریتمی که مدل‌ها را متوالی آموزش می‌دهد و خطاهای مدل قبلی را اصلاح می‌کند.
۲۴. Support Vector Machine (SVM) چیست؟
الگوریتم دسته‌بندی که مرز تصمیم با بیشترین فاصله بین کلاس‌ها پیدا می‌کند.
۲۵. K-Nearest Neighbors (KNN) چیست؟
دسته‌بندی یا پیش‌بینی بر اساس نزدیک‌ترین k نمونه به داده جدید.
۲۶. Hyperparameter چیست؟
پارامترهایی که قبل از آموزش مدل تنظیم می‌شوند و روی عملکرد مدل تاثیر دارند.
۲۷. Grid Search چیست؟
روش پیدا کردن بهترین مقادیر Hyperparameter
from sklearn.model_selection import GridSearchCV params = {'max_depth':[3,5,7]} grid = GridSearchCV(DecisionTreeClassifier(), param_grid=params) grid.fit(X_train, y_train) print(grid.best_params_)
۲۸. Random Search چیست؟
مشابه Grid Search اما مقادیر Hyperparameter به صورت تصادفی انتخاب می‌شوند.
۲۹. Feature Importance چیست؟
نشان می‌دهد هر ویژگی چه میزان به پیش‌بینی مدل کمک می‌کند
print(model.feature_importances_)
۳۰. Principal Component Analysis (PCA) چیست؟
کاهش ابعاد داده و حفظ بیشترین واریانس
from sklearn.decomposition import PCA pca = PCA(n_components=2) X_new = pca.fit_transform(X)
۳۱. Logistic Regression برای Classification چندکلاسه چطور است؟
با تکنیک One-vs-Rest یا Softmax پیاده‌سازی می‌شود.
۳۲. Confusion Matrix چیست؟
جدول نمایش تعداد True Positive، True Negative، False Positive، False Negative
from sklearn.metrics import confusion_matrix print(confusion_matrix(y_test, pred))
۳۳. ROC Curve چیست؟
منحنی نمایش trade-off بین True Positive Rate و False Positive Rate
۳۴. AUC چیست؟
Area Under Curve برای سنجش کیفیت مدل دسته‌بندی
۳۵. SMOTE چیست؟
تکنیک Oversampling برای داده‌های نامتوازن
from imblearn.over_sampling import SMOTE sm = SMOTE() X_res, y_res = sm.fit_resample(X, y)
۳۶. Normal Equation چیست؟
روش تحلیلی برای حل Linear Regression بدون Gradient Descent
۳۷. Gradient Descent چیست؟
روش بهینه‌سازی برای کمینه کردن خطا با بروزرسانی وزن‌ها
۳۸. Learning Rate چیست؟
نرخ تغییر وزن‌ها در هر مرحله Gradient Descent
۳۹. Regularization چیست و انواع آن؟
جلوگیری از Overfitting
L1 (Lasso) و L2 (Ridge)
۴۰. Pipeline در Scikit-learn چیست؟
ترکیب چند مرحله preprocessing و مدل
from sklearn.pipeline import Pipeline from sklearn.preprocessing import StandardScaler pipe = Pipeline([('scaler', StandardScaler()), ('clf', LogisticRegression())]) pipe.fit(X_train, y_train)
۴۱. Bagging چیست؟
آموزش چند مدل روی نمونه‌های مختلف داده و میانگین گرفتن پیش‌بینی‌ها
۴۲. Boosting چیست؟
آموزش مدل‌ها به ترتیب برای اصلاح خطاهای مدل قبلی
۴۳. Cross-Entropy Loss چیست؟
معیار خطا برای مسائل Classification
۴۴. Mean Absolute Error (MAE) چیست؟
میانگین قدر مطلق خطاها برای مسائل Regression
۴۵. RNN چیست؟
شبکه عصبی بازگشتی برای داده‌های دنباله‌ای مثل متن یا سری زمانی
۴۶. LSTM چیست؟
نسخه پیشرفته RNN با حافظه بلندمدت برای جلوگیری از مشکل Vanishing Gradient
۴۷. Overfitting در Deep Learning چگونه کاهش می‌یابد؟
Dropout، Regularization، افزایش داده‌ها (Data Augmentation)
۴۸. Batch Normalization چیست؟
نرمال‌سازی خروجی هر لایه برای تسریع و پایدارسازی آموزش شبکه
۴۹. Optimizer چیست؟
الگوریتم بروزرسانی وزن‌ها مثل SGD، Adam، RMSProp
۵۰. Epoch چیست؟
یک دوره کامل عبور داده‌ها از شبکه عصبی در فرآیند آموزش
بخش ۳: یادگیری عمیق و شبکه‌های عصبی (سوال ۵۱–۸۰)
۵۱. Perceptron چیست؟
ساده‌ترین شبکه عصبی با یک لایه ورودی و یک خروجی برای دسته‌بندی خطی.
۵۲. Activation Function چیست؟
تابع فعال‌سازی برای اضافه کردن غیرخطی بودن به شبکه
مثال‌ها: ReLU, Sigmoid, Tanh
import torch.nn as nn nn.ReLU() nn.Sigmoid()
۵۳. Feedforward Neural Network چیست؟
شبکه عصبی که اطلاعات فقط جلو به عقب حرکت می‌کنند و حلقه‌ای ندارد.
۵۴. Backpropagation چیست؟
الگوریتم محاسبه گرادیان برای آموزش شبکه عصبی.
۵۵. Tensor چیست؟
آرایه n بعدی داده‌ها در PyTorch یا TensorFlow
import torch x = torch.tensor([[1,2],[3,4]])
۵۶. PyTorch vs TensorFlow چه تفاوتی دارند؟
PyTorch: داینامیک، راحت برای آموزش و Debug
TensorFlow: استاتیک، مناسب Production و TPU
۵۷. Loss Function در Deep Learning چیست؟
معیار خطا، مثل CrossEntropyLoss یا MSELoss
loss_fn = nn.CrossEntropyLoss()
۵۸. Optimizer چیست؟
الگوریتم بروزرسانی وزن‌ها، مثل Adam یا SGD
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
۵۹. Batch Size چیست؟
تعداد نمونه‌هایی که یک بار وارد شبکه می‌شوند.
۶۰. Dropout چیست؟
جلوگیری از Overfitting با غیرفعال کردن تصادفی برخی نورون‌ها
nn.Dropout(0.5)
۶۱. CNN چیست؟
شبکه عصبی کانولوشنی برای داده‌های تصویری
۶۲. Convolution Layer چیست؟
لایه‌ای که فیلترها را روی تصویر اعمال می‌کند
nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3)
۶۳. Pooling Layer چیست؟
کاهش ابعاد ویژگی‌ها و حفظ مهم‌ترین اطلاعات
nn.MaxPool2d(2)
۶۴. Flatten Layer چیست؟
تبدیل خروجی CNN به بردار برای اتصال به Dense Layer
x = x.view(x.size(0), -1)
۶۵. Fully Connected Layer چیست؟
لایه کاملاً متصل برای تصمیم‌گیری نهایی
۶۶. ResNet چیست؟
شبکه با Shortcut Connection برای حل مشکل Vanishing Gradient
۶۷. Transfer Learning چیست؟
استفاده از مدل پیش‌آموزش دیده و اعمال آن روی پروژه جدید
۶۸. Fine-Tuning چیست؟
آموزش مجدد بخش‌هایی از مدل پیش‌آموزش دیده
۶۹. Autoencoder چیست؟
شبکه عصبی برای فشرده‌سازی و بازسازی داده‌ها
۷۰. Variational Autoencoder (VAE) چیست؟
Autoencoder با احتمال‌سنجی برای تولید داده‌های جدید
۷۱. GAN چیست؟
شبکه مولد تقابلی با Generator و Discriminator برای تولید داده
۷۲. Generator چیست؟
بخشی از GAN که داده‌های مصنوعی تولید می‌کند
۷۳. Discriminator چیست؟
بخشی از GAN که داده واقعی و مصنوعی را تشخیص می‌دهد
۷۴. RNN چیست؟
شبکه عصبی برای داده‌های دنباله‌ای
۷۵. LSTM چیست؟
RNN با حافظه بلندمدت برای جلوگیری از مشکل Vanishing Gradient
۷۶. GRU چیست؟
نسخه ساده‌تر و سبک‌تر LSTM
۷۷. Attention چیست؟
مکانیزمی که شبکه روی بخش‌های مهم ورودی تمرکز می‌کند
۷۸. Transformer چیست؟
شبکه عصبی بدون RNN که از Attention برای ترجمه و متن استفاده می‌کند
۷۹. BERT چیست؟
مدل پیش‌آموزش دیده برای NLP با Transformer
۸۰. GPT چیست؟
مدل زبان بزرگ مبتنی بر Transformer برای تولید متن
بخش ۴: پروژه‌های عملی یادگیری ماشین و هوش مصنوعی (سوال ۸۱–۱۰۰)
۸۱. پیش‌بینی قیمت خانه با Linear Regression
داده‌های خانه را با pandas خوانده و با sklearn.linear_model.LinearRegression پیش‌بینی کنید
from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit(X_train, y_train) y_pred = model.predict(X_test)
۸۲. دسته‌بندی تصاویر با CNN
از torchvision برای دیتاست MNIST استفاده کنید
import torchvision from torchvision import transforms
۸۳. تشخیص احساسات متن با LSTM
دیتاست IMDB + LSTM در PyTorch
۸۴. تولید متن با GPT-2 کوچک
استفاده از transformers
from transformers import GPT2LMHeadModel, GPT2Tokenizer
۸۵. تشخیص اشیاء با YOLOv5
مدل آماده YOLOv5 روی تصاویر
۸۶. خوشه‌بندی مشتریان با KMeans
تقسیم مشتریان به گروه‌ها
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3) kmeans.fit(data)
۸۷. کاهش ابعاد با PCA
تحلیل داده‌های پیچیده با Principal Component Analysis
۸۸. سیستم توصیه‌گر ساده
Collaborative Filtering با surprise یا ماتریس امتیاز
۸۹. تشخیص تقلب با Random Forest
داده تراکنش‌ها و مدل درخت تصمیم
۹۰. پیش‌بینی سری زمانی با LSTM
داده‌های دنباله‌ای مثل قیمت ارز یا آب و هوا
۹۱. تولید تصویر با GAN ساده
Generator و Discriminator برای دیتاست کوچک
۹۲. Autoencoder برای کاهش نویز تصویر
آموزش شبکه برای بازسازی تصویر بدون نویز
۹۳. تشخیص چهره با OpenCV و CNN
import cv2 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
۹۴. پردازش زبان طبیعی (NLP) با TF-IDF و Naive Bayes
تحلیل متن، دسته‌بندی ایمیل یا خبر
۹۵. طبقه‌بندی تصاویر با Transfer Learning (ResNet50)
استفاده از مدل پیش‌آموزش دیده برای پروژه کوچک
۹۶. شبیه‌ساز ATM با شرط‌ها و کلاس‌ها
ایجاد سیستم برداشت و واریز پول با مدیریت حساب
۹۷. بازی ساده با Reinforcement Learning
Q-learning یا Gym برای CartPole
۹۸. پیش‌بینی بیماری با Logistic Regression
داده‌های سلامت، تشخیص بله/خیر
۹۹. تحلیل احساسات شبکه‌های اجتماعی با BERT
Classifier متن برای مثبت/منفی بودن
۱۰۰. ساخت چت‌بات ساده با Transformer و PyTorch
دریافت ورودی کاربر و پاسخ‌دهی خودکار