Скаляры, векторы и матрицы, боже мой!
День 3 и 4 был посвящен изучению основ машинного обучения и математики. Машинное обучение можно применять без математики. Однако применение машинного обучения более эффективно, зная, что эти системы делают под капотом. Это помогает работать с вводными книгами, чтобы понять основы машинного обучения.
В день 3 и 4 я прочитал Глава 2 глубокого обучения: Линейная алгебра, написанную Яном Гудфеллоу. Линейная алгебра присутствует в машинном обучении повсюду, и ее можно увидеть в базовых материалах. Он широко используется в инженерии и науке. Линейная алгебра используется для построения алгоритмов оптимизации и решения линейных систем ограничений. Итак, это сообщение в блоге - мои заметки по темам, необходимым для понимания того, что будет дальше.
скаляры, векторы и матрицы
- Скаляр - это одно число
- Вектор - это массив чисел.
- Матрица - это двумерный массив
- Тензор - это тензор - это n -мерный массив с n ›2
- скаляры пишутся строчными буквами и курсивом. Например: n
- векторы пишутся строчными буквами, курсивом и жирным шрифтом. Например: x.
- матрицы пишутся прописными, курсивом и жирным шрифтом. Например: X.
Пример кода
Операции Матрицы можно применять к объектам линейной алгебры. Это операции сложения, вычитания, транспонирования, умножения и обратные.
Дополнение: добавление двух векторов требует, чтобы они имели одинаковое количество элементов и одинаковую форму.
Вычитание: вычитание двух векторов требует, чтобы они имели одинаковое количество элементов и одинаковую форму.
Транспонирование: транспонирование матрицы - это оператор, который переворачивает матрицу по ее главной диагонали, как зеркальное отображение. Это можно сделать, вызвав numpy.transpose
функцию или T
метод в numpy.
Умножение: NumPy использует функцию numpy.dot
для умножения векторов и матриц. Умножение матриц не коммутативно.
Обратное: обратное действие применяется только к квадратным матрицам (матрице с одинаковым количеством столбцов и строк). Чтобы вычислить обратное с помощью numpy, нам нужно использовать функцию numpy.linalg.inv
.
Транспонировать: преобразование вектора-строки в вектор-столбец и наоборот. По сути, это зеркальное отображение. Это можно сделать, вызвав numpy.transpose
функцию или T
метод в numpy.
Резюме
В этом посте я обсуждал математические объекты линейной алгебры, которая используется в машинном обучении. Я кратко обсудил сложение, вычитание, транспонирование, умножение и обратное. Кроме того, вы узнали о важных свойствах матриц и о том, как мы можем обеспечить эффективные вычисления. Третий и четвертый день 100-дневного испытания кода ML были потрачены на изучение основных принципов. В ближайшие несколько дней я планирую завершить Часть I: Прикладная математика и основы машинного обучения и задокументировать свой прогресс.
Заключительные слова
Было весело обсуждать первую часть линейной алгебры. Следите за обновлениями в Части II, где я обсуждаю типы матриц. Если будут обнаружены какие-либо ошибки, напишите мне по адресу [email protected]. А пока подписывайтесь на меня в моем твиттере здесь. Журнал проезда можно найти здесь.
Ресурсы
@book{Goodfellow-et-al-2016, title={Deep Learning}, author={Ian Goodfellow and Yoshua Bengio and Aaron Courville}, publisher={MIT Press}, note={\url{http://www.deeplearningbook.org}}, year={2016} }