Математика - най-съвършеният способ да водиш сам себе си за носа. Алберт Айнщайн.
Уви точно такова е положението с ИИ.
Ян Лекун (англ. Yann LeCun) — французский учёный в области информатики, основные сферы деятельности — машинное обучение, компьютерное зрение, мобильная робототехника и вычислительная нейробиология. Известен работами по применению нейросетей к задачам оптического распознавания символов и машинного зрения. Один из основных создателей технологии сжатия изображений DjVu (совместно с Леоном Боту[en] и Патриком Хаффнером). Вместе с Леоном Боту создал язык программирования Lush.
Лауреат премии Тьюринга (2018, совместно с Бенжио и Хинтоном за формирование направления глубокого обучения).
Лекун Ян - Как учится машина: Революция в области нейронных сетей и глубокого обученияТекст
https://rutracker.org/forum/viewtopic.php?t=6359472Аудио
https://rutracker.org/forum/viewtopic.php?t=6248133Линейна алгебра
Тензорна алгебра
Вектори
Матрици
До начала 1980-х гг. архитектура машин
строилась на бинарных нейронах, которые выдавали
положительный выходной сигнал, когда взвешенная сумма их
входов превышала пороговое значение. Они выдавали –1, когда
взвешенная сумма снижалась. Таким образом, у них было два
возможных состояния выходного сигнала: либо +1, либо –1
(некоторые предпочитают нейроны с выходом 1 или 0).
Недостатком использования пороговых значений является
дискретизация функции стоимости: когда вес меняется лишь на
небольшую величину, это изменение может не повлиять на
выходной сигнал нейрона. И наоборот, если вес изменяется на
достаточную величину, происходит внезапное переключение
выхода нейрона с –1 на +1, или с +1 на –1. Если изменение
происходит до выхода из сети, это приводит к резкому изменению
функции стоимости.
Другими словами, небольшое изменение параметров может не
привести к изменению функции стоимости или, наоборот,
вызвать резкое изменение. «Горный пейзаж» функции стоимости
трансформируется в последовательность горизонтальных слоев,
разделенных вертикальными отрезками. Методы градиентного
спуска в такой модели не работают. Короче говоря, бинарные
нейроны несовместимы с обучением по алгоритму градиентного
спуска.
Тоест, казано на прост език невронът е аналогов, следователно неговата цифрова симулация изисква големи изчислителни ресурси.
А многослойна мрежа от цифрови неврони огромни изчислителни ресурси.
Време е за бърз урок по математика.
За да разберем точно какво правят тензорните ядра и за какво могат да се използват, първо трябва да изясним точно какво представляват тензорите.
Най-простият тип тензор, който можете да получите, ще има нулеви измерения и ще се състои от една стойност - друго име за това е скаларно количество. Когато започнем да увеличаваме броя на измеренията, можем да се натъкнем на други общи математически структури:
1 измерение = вектор
2 измерения = матрица
Строго погледнато, скаларът е тензор 0 x 0, векторът е 1 x 0, а матрицата е 1 x 1, но за по-голяма простота и как се свързва с тензорните ядра в графичния процесор, просто ще разгледаме тензори под формата на матрици.
Една от най-важните математически операции, извършвани с матрици, е умножението. Нека да разгледаме как две матрици, и двете с 4 реда и колони със стойности, се умножават:
Крайният отговор на умножението винаги е същият брой редове като първата матрица и същият брой колони като втората. Как се умножават тези два масива?
Както можете да видите, едно „просто“ изчисление на матричен продукт се състои от цял набор от малки умножения и събирания. Тъй като всеки CPU на пазара днес може да извършва и двете от тези операции, това означава, че всеки настолен компютър, лаптоп или таблет може да обработва основни тензори.
Горният пример обаче съдържа 64 умножения и 48 събирания; всеки малък резултат води до стойност, която трябва да бъде съхранена някъде, преди да може да се натрупа с другите 3 малки резултата , преди тази крайна стойност за тензора да може да бъде съхранена някъде. Така че, въпреки че матричните умножения са математически ясни, те изискват много изчисления – трябва да се използват много регистри, а кешът трябва да се справи с много четения и записи.
В света на графиките огромно количество данни трябва да се движат и обработват под формата на вектори, всички по едно и също време. Възможността за паралелна обработка на графичните процесори ги прави идеални за работа с тензори и всички те днес поддържат нещо, наречено GEMM ( общо матрично умножение ).
Това е „слята“ операция, при която две матрици се умножават заедно и отговорът на който след това се натрупва с друга матрица. Има някои важни ограничения за това какъв формат трябва да приемат матриците и те се въртят около броя на редовете и колоните, които всяка матрица има.
Тензорната математика е изключително полезна във физиката и инженерството и се използва за решаване на всякакви сложни проблеми в механиката на флуидите , електромагнетизма и астрофизиката , но компютрите, използвани за обработка на тези числа, обикновено извършват матричните операции на големи клъстери от процесори.
Друго поле, което обича да използва тензори, е машинното обучение , особено подмножеството дълбоко обучение. Всичко това е свързано с обработката на огромни колекции от данни, в огромни масиви, наречени невронни мрежи . Връзките между различните стойности на данните получават специфично тегло – число, което изразява колко важна е тази връзка.
Така че, когато трябва да разберете как си взаимодействат всичките стотици, ако не и хиляди връзки, трябва да умножите всяка част от данните в мрежата по всички различни тегла на връзката. С други думи, умножете две матрици заедно: класическа тензорна математика!
Ето защо всички големи суперкомпютри за дълбоко обучение са пълни с графични процесори и почти винаги тези на Nvidia. Въпреки това, някои компании са стигнали дотам, че да направят свои собствени процесори с тензорно ядро. Google, например, обяви първия си TPU ( тензорен процесор ) през 2016 г., но тези чипове са толкова специализирани, че не могат да правят нищо друго освен матрични операции.