Скаляры, векторы и матрицы, боже мой!

День 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}
}