31 мая 2024
Исламтекст ещё не в индексе
у меня было такое впечатление, тем более когда он начал пересказывать алгоритм, который я и так расписал. но решил не копать в это)
ну а что реальные люди на мой вопрос скажут? неужели никто не шарит за mAP?
ИсламТы просто попользуйся чатом, ни один здоровый чел не будет тебе тут распивать весь ответ. А так отвечает на все «учебные» вопросы ChatGPT, ты им пользовался?
пользовался, но он может галлюцинировать. попросить его написать код, который ты сам можешь протестить - это одно. спросить какой то факт - это другое. может "соврать"
victor .пользовался, но он может галлюцинировать. попросить его написать код, который ты сам можешь протестить - это одно. спросить какой то факт - это другое. может "соврать"
Не не, я не про код, я просто про вопрос - а что такое … например попроси объяснить тебе что такое ООП, он тебе распишет ровно как тот тип 😂
ИсламВот ты например, просто написал mAP, а якобы тот тип тебе даже в скобках написал расшифровку, никто так бл. не сделает 😂
я не стал в это копать, потому что люди тоже разные бывают. может излишне официозный человек попался)
но не суть.
Объектно-ориентированное программирование (ООП) — это парадигма программирования, основанная на концепции объектов. Объекты могут содержать данные, в виде полей (часто называемых атрибутами или свойствами), и код, в виде процедур (часто называемых методами).
### Основные концепции ООП
1. Классы и объекты
- Класс — это шаблон или чертеж для создания объектов. Он определяет набор свойств и методов, которые будут у объектов этого класса.
- Объект — это конкретный экземпляр класса. Он обладает всеми характеристиками, определенными в классе.
2. Инкапсуляция
- Инкапсуляция подразумевает скрытие внутреннего состояния объекта и запрет прямого доступа к нему. Взаимодействие с объектом происходит через его методы. Это помогает защитить данные от некорректного использования и делает код более гибким и устойчивым к изменениям.
- В ООП обычно используется три уровня доступа: public (общедоступный), protected (защищенный) и private (закрытый).
3. Наследование
- Наследование позволяет создавать новый класс на основе существующего. Новый класс, называемый подклассом (или дочерним классом), наследует свойства и методы родительского класса (или базового класса). Это позволяет переиспользовать код и создавать более сложные структуры.
- Подкласс может добавлять новые свойства и методы или изменять (переопределять) существующие.
4. Полиморфизм
- Полиморфизм позволяет использовать один интерфейс для различных типов данных. Это означает, что один метод может работать с разными объектами, что делает код более гибким и расширяемым.
- Полиморфизм достигается через перегрузку методов (разные реализации одного и того же метода) и через переопределение методов в наследуемых классах.
### Примеры концепций ООП на языке Python
# Пример класса в Python
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
raise NotImplementedError("Subclass must implement abstract method")
# Пример наследования
class Dog(Animal):
de
ИсламТочнее AI, Карл, это точно чат по машинному обучению? Ладно, шучу, бывает
я вот надеялся, что это чат по машинному обучению)
поэтому и написал сюда
Ivan Rubztsov RubztsovА какой reward давать в Q learning'е при невозможных действиях (например невозможный ход в шахматах)? Или Q learning не работает для окружений где такое бывает?
В Q-learning и других методах обучения с подкреплением для ситуаций, где агент может совершить невозможное действие (например, сделать невозможный ход в шахматах), существует несколько подходов для обработки таких действий.
### Подходы для обработки невозможных действий в Q-learning:
1. Наказание (отрицательный reward):
Если агент выбирает невозможное действие, ему присваивается большой отрицательный reward. Это наказывает агента за попытку выполнить невозможное действие и обучает его избегать таких действий в будущем.
impossible_action_penalty = -100
2. Игнорирование невозможных действий:
Во время выбора действия из Q-таблицы, невозможно действие просто игнорируется, и выбирается следующее лучшее возможное действие. Это может быть реализовано путем проверки допустимости действия перед его выполнением.
possible_actions = [a for a in actions if is_valid(a)]
if possible_actions:
action = max(possible_actions, key=lambda a: Q[state, a])
3. Запрещение невозможных действий при обновлении Q-таблицы:
При обновлении Q-таблицы можно использовать только возможные действия. Это предотвращает обновление Q-значений для невозможных действий, что, в свою очередь, позволяет агенту игнорировать такие действия.
if is_valid(action):
Q[state, action] = (1 - alpha) * Q[state, action] + alpha * (reward + gamma * max(Q[next_state, a] for a in actions if is_valid(a)))
4. Большие отрицательные Q-значения:
Можно установить очень большие отрицательные начальные значения Q для всех невозможных действий, что делает их выбор крайне невыгодным для агента.
Q[state, impossible_action] = -1000
### Пример кода для шахмат
Для примера с шахматами, предположим, что у нас есть функция is_valid_move для проверки допустимости хода. Мы можем комбинировать некоторые из вышеперечисленных подходов следующим образом:
import numpy as np
# Параметры
alpha = 0.1 # Коэффициент обучения
gamma = 0.9 # Коэффициент дисконтирования
epsilon = 0.1
Я пока не особо разбираюсь в ИТ в целом, но может кто-то подсказать, пожалуйста, как МЛ в целом выглядит в процессе? В контексте, имею ввиду. Как его интегрируют. Что явялется его входами, что выходами. Пока что разбираюсь только в самих методах, принимая на вход csv. Был бы рад, если поделитесь с образовательными материалами, заточенными именно на системный дизайн и картину в целом
Фотография
нажмите — покажем
нажмите — покажем
🌟 Apache TVM — компиляция ML-моделей для любых аппаратных характеристик
Apache TVM — это фреймворк компилятора ML-приложений с открытым исходным кодом для CPU, GPU и не только.
Цель Apache TVM — дать ML-инженерам возможность оптимизировать и эффективно выполнять вычисления на любом железе.
🖥 GitHub
🟡 Доки
@data_analysis_ml
6K · id 1684146975🌟 Apache TVM — компиляция ML-моделей для любых аппаратных характеристик
Apache TVM — это фреймворк компилятора ML-приложений с открытым исходным кодом для CPU, GPU и не только.
Цель Apache TVM — дать ML-инженерам возможность оптимизировать и эффективно выполнять вычисления на любом железе.
🖥 GitH
Даже на моей gt710?