Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 Типизация (натурализация) данных в ML
Внимание. Речь сейчас пойдёт не про типы данных Python/Numpy/Pandas/Pytorch и не про представления тензоров в CPU/GPU.

Речь о параллельном мире, в котором данные на синапсах и на выходах нейросетей также обладают типами (ML-типами). Как известно, нейросети работают исключительно с вещественными числами, даже если это всегда 0.0 или 1.0. Но про типы данных никто никогда не говорил.

Так вот, я - говорю.)

Давайте я сразу накидаю базу: данные делятся на интерпретируемые и эмбеддинги (всё, что в скрытых слоях). Интерпретируемые данные - это то, что на входе и выходе нейросети.

Классификация ML-типов как в реальном мире: простые типы и сложные типы. У интерпретируемых данных можно выделить типы boolean, integer, real и т.д. - как в реальном мире. У эмбеддингов тип данных определяется нейроном в процессе обучения нейросети и не является интерпретируемым. Но можно выделить основные сложные типы: struct (list), const-size array, var-size array, dynamic-size array, unordered set. Возможно, следует туда добавить словари dict (key-query), которые в трансформерах используются. И ещё вопрос, надо ли выделить batch-packed types - это когда данные упакованы в батчи, особенно важно для var-size array.

Это всё база. А теперь про тип данных - unspecified (аналог реального типа данных variant). Когда веса нейрона только инициализированы случайным образом, его типы данных на входе синапсов становится unspecified. В процессе обучения синапсы специализируются и в дальнейшем попытка подать на вход данные другого типа приведут к ухудшению процесса. Это и есть типизация, когда вы вынуждены соблюдать ML-типы (даже если вы их не можете интерпретировать).

Когда у нейрона формируются определённые типы на синапсах, то можно говорить о том, что на его выходе тоже сформировался некоторый тип и нейроны из последующего слоя "привыкают" к этому типу данных. Вы не можете просто взять и переподключить какие-то связи в нейросети, не испортив процесс обучения. Но это было бы интересно!

В связи с вышесказанным, я бы заменил типизацию данных термином натурализация данных. Вы вынуждены учитывать природу данных, к которой привыкает каждый синапс нейрона. Некоторые думают, что нейронке можно скормить некоторые грязные данные. Это не так. Надеюсь в будущем, на курсах ML, будут рассказывать про натурализацию данных и вспоминать моё доброе имя.

 Re: Типизация (натурализация) данных в ML
На самом деле, если научно выражаться, то в процессе обучения каждый нейрон ориентируется своей разделяющей гиперплоскостью на определённое многомерное распределение обучающей выборки, и смена этой выборки на другую - плохая идея - приводит к неработоспособности процесса.
Этот факт очень удачно сочетается в абстрактном смысле с типизацией данных (которая из мира программирования). Типы данных из мира программирования вполне удачно прикладываются к миру нейросетей. Вместо того, чтобы говорить о многомерных распределениях вероятности, можно просто говорить о типах. Это просто удачная абстракция.

-- добавлено через 25 минут --

Поскольку есть типы данных, значит есть сигнатуры слоёв:
1. Линейный слой Linear: list -> list
2. Свёрточный слой Conv: list -> list
3. Слои активации Sigmoid, Tanh, ReLU, MaxPooling, BatchNorm, Dropout: list -> list
4. Рекуррентные слои RNN, LSTM: dyn-size_array -> dyn-size_array
5. Позиционное кодирование PositionalEncoding: array -> unordered set + position
6. SoftBinning: unordered set -> array
7. TopkPooling: dyn-size_array -> dyn-size_array

array совместим с list, но в обратную сторону это не работает. Отсюда следует вывод об универсальности некоторых слоёв типа Linear, ReLU и т.д.

 Re: Типизация (натурализация) данных в ML
Mihaylo в сообщении #1724780 писал(а):
... данные на синапсах и на выходах нейросетей также обладают типами ...


:-) ну, не совсем точно... Во-первых, набор суперпозиционных входных (электрических (в естественных нейросетях)) паттернов на дендритах нейрона. Во-вторых, широковещательный пространственно-временной выходной паттерн нейрона на контактирующих с аксоном этого нейрона дендритах других нейронов. Но дело не в этом...

Я смотрю, ты всё "грызёшь" темы "ИИ" (но читать мне лень, разумеется).

У тебя есть своё мнение, насколько в итоге дешевле и быстрее будет AGI, чем теперешние системы ИИ, и почему?

 Re: Типизация (натурализация) данных в ML
Будьте добры, не отравляйте тему своими "широковещательными паттернами".

 Re: Типизация (натурализация) данных в ML
 !  Aleksei.Morozov.1973
На этом форуме принято обращаться к собеседнику на "вы" (или на "Вы", по желанию).

 Re: Типизация (натурализация) данных в ML
Mihaylo в сообщении #1724921 писал(а):
... не отравляйте тему ...


:-) wow... И, так понимаю, ответа на мой вопрос не будет?

 Re: Типизация (натурализация) данных в ML
Аватара пользователя
Mihaylo в сообщении #1724780 писал(а):
В процессе обучения синапсы специализируются и в дальнейшем попытка подать на вход данные другого типа приведут к ухудшению процесса
Во всех ваших примерах, "типы" - это просто следствие архитектуры. Нейронка - это композиция функций, зависящих от входа и весов, сами функции задаются при построении сети, и не меняются. И ваши "типы" - это именно характеристика функции.

 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group