Machine learning Interview
35.8K subscribers
1.32K photos
96 videos
13 files
884 links
Разбираем вопросы с собеседований по Machine Learning, Data Science, Deep Learning и Нейронным сетям, Python.

Вопросы - @notxxx1


@itchannels_telegram -🔥лучшие it каналы

РКН: clck.ru/3FmwRz
Download Telegram
👍132🥰1
🖥 Как бы вы реализовали функцию потерь в PyTorch?

В PyTorch функции потерь могут быть реализованы путем создания подкласса класса nn.Module и переопределения метода forward. Метод forward принимает на вход прогнозируемый выход и фактический выход и возвращает значение потерь.

Приведем пример кода:

import torch
import torch.nn as nn

class CustomLoss(nn.Module):
def __init__(self):
super(MyLoss, self).__init__()

def forward(self, output, target):

loss = ... # compute the loss

return loss


Теперь, чтобы использовать функцию потерь, необходимо инициализировать ее и передать в качестве аргумента параметру criterion оптимизатора в цикле обучения.

model = ...
optimizer = ...
criterion = CustomLoss()

# цикл обучения
for epoch in range(num_epochs):

optimizer.zero_grad()
outputs = model(data)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()

...


#pytorch #junior

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5
4️⃣самые популярные функции активации, о которых нужно иметь представление

— Сигмоида
Нелинейна по своей природе, поэтому комбинация таких функций производит тоже нелинейную функцию. Так что она хорошо подходит для комбинации слоёв. Чаще всего применяется в задачах бинарной классификации, где нужно предсказать вероятность принадлежности к одному из 2 классов.

— Tanh
Гиперболический тангенс — это скорректированная сигмоидная функция. Стоит отметить, что градиент тангенциальной функции больше, чем у сигмоиды; она растёт быстрее. Активное используется в рекуррентных сетях, вероятностных моделях и т.д.

— ReLU
Имеет низкую вычислительную сложность, устойчива к переобучению. Область допустимых значений ReLu — [0, inf), то есть активация может "взорваться" от больших значений. Широко применяется в глубоких нейронных сетях благодаря простоте и отсутствию затухающего градиента

— Leaky ReLU
Модификация ReLU, призвана решить проблему "умирающей ReLU". Используется в нейронных сетях для введения нелинейности в выходные данные каждого нейрона.

📁Лекция МГУ в тему [pdf]

#junior

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍314🔥4
⚙️ Задача по машинному обучению: Классификация текстовых отзывов с использованием современных LLM.

Условие:
Дана выборка текстовых отзывов о продуктах с метками настроения (позитивный/негативный).
Необходимо:
1️⃣ Разделить данные на обучающую и тестовую выборки (80/20)
2️⃣ Обучить классификатор на основе Claude 3
3️⃣ Сравнить качество с GPT-4 и Gemini 1.5
4️⃣ Оценить точность и время обработки

Решение:

import anthropic
import openai
import google.generativeai as genai
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
import time

# Пример данных (в реальной задаче - загрузка датасета)
reviews = ["Отличный товар, всем рекомендую!",
"Ужасное качество, не покупайте..."]
labels = [1, 0] # 1=позитивный, 0=негативный

# Разделение данных
X_train, X_test, y_train, y_test = train_test_split(reviews, labels, test_size=0.2)

def classify_with_claude(text):
client = anthropic.Anthropic(api_key="your_api_key")
response = client.messages.create(
model="claude-3-opus-20240229",
max_tokens=100,
messages=[{"role": "user", "content": f"Классифицируй отзыв: '{text}'. Ответь только '1' (позитивный) или '0' (негативный)"}]
)
return int(response.content[0].text)

# Аналогичные функции для GPT-4 и Gemini...

# Тестирование
models = {"Claude 3": classify_with_claude,
"GPT-4": classify_with_gpt4,
"Gemini 1.5": classify_with_gemini}

for name, model in models.items():
start = time.time()
preds = [model(text) for text in X_test]
elapsed = time.time() - start
acc = accuracy_score(y_test, preds)
print(f"{name}: Accuracy = {acc:.2f}, Time = {elapsed:.1f} сек")


Пишите свои варианты решения в комментариях👇

@machinelearning_interview

#junior
🤣227👍6🥰4😁2