AlexTCH – Telegram
AlexTCH
309 subscribers
76 photos
4 videos
2 files
903 links
Что-то про программирование, что-то про Computer Science и Data Science, и немного кофе. Ну и всякая чушь вместо Твиттера. :)
Download Telegram
А как вообще люди во время изоляции выдерживали сидеть в одной квартире со своей кукухой?! 🤯
👎1🤡1🐳1
https://arxiv.org/abs/2210.16294
"Learning Modular Simulations for Homogeneous Systems" by Jayesh K. Gupta, Sai Vemprala, Ashish Kapoor

A pretty cool paper from Microsoft Research merging Neural ODEs with Graph Neural Networks ideas. It presents data-driven continuous-time dynamical system identification problem as learning a system of NeuralODE nodes connected with links forming a graph, and using (synthetic) message-passing along the graph edges. Thus the MP-NODE name of the technique.

OK, what does all of that mean?
Most of physical (continuous-time) systems are modelled as differential equations, and we all know that knowing either initial conditions or boundary conditions we can (numerically) solve the equation obtaining a function that tells us the state of the system at any point in time and space. But to do so we need to know precisely the function governing system's evolution. For most real-world systems we can't know it, and instead we have a series of measurements of the system's state at different times. So we have a data-driven system identification problem.

NeuralODEs present one approach to this problem, approximating unknown evolution function with a Neural Network so we can train the network in a way that ODE solution becomes as close to the data at hand as possible. And we need to go deeper! 😊

Usually real-world systems get composed from smaller systems, that can be described with differential equations, connected together. Thus it would be pretty natural (and hopefully computationally more efficient) to model them the same way: as a number of (smaller) equations somehow connected and synchronized.

Enter MP-NODE: the authors propose augmenting NeuralODE's state vectors with a "message" part, account for connections between different nodes, and learn the whole thing at once from the data.

The caveat is all the nodes in the system are governed by exactly the same NeuralODE, thus the "Homogeneous" part of the noscript. But such (pretty) homogeneous systems are all around us: for instance water supply system consists of almost identical pumping stations connected into a single network.

The results are pretty impressive and promising! The MP-NODE models learned from smaller systems (in terms of the number of nodes in a graph) can be easily and efficiently fine-tuned to larger systems. And if we keep the size of the graph but change the topology (connectivity) the model performs surprisingly accurate even without any additional training at all!

Also the "ODEs connected with links in a graph" idea reminds me about https://github.com/AlgebraicJulia/AlgebraicDynamics.jl from the Topos Institute. Though their approach has nothing to do with Machine Learning. But for some reason they chose Julia anyway too! 😃

#julia #machinelearning #ode
https://neverworkintheory.org/about/
"It might work in practice, but it will never work in theory"

The folks are trying to bring useful empirical results on Software Engineering to the attention of "unsophisticated" Software Developers (like me).

They accept worthy contributions (blog posts) from Internet randos. 😉
🐳1
https://towardsdatascience.com/what-is-better-one-general-model-or-many-specialized-models-9500d9f8751d

Decision Trees-based predictive models rock (the ROC curve, yes).

The post compares "specialized models" trained on a subset of data with "general models" trained on the whole dataset. The assumption is if we slice the data in an appropriate way (by country for instance) the specialized model will have easier time learning patterns specific to the slices. Kinda makes sense but doesn't seem to really work.

Would be interesting to compare with DNNs both general and special. Though there are many more hyperparameters to screw things up...
https://thakkarparth007.github.io/copilot-explorer/posts/copilot-internals

Github Copilot extension as a Codex prompt engineering (partially) reverse-engineered.
Not very surprising the extension itself employs a learned Logistic Regression model to evaluate composed prompts.
Нормально ли слушать Генделя вместо Lo-fi Girl? А наоборот? 🤔
👍3🤯1🤡1
In my version of computational thinking, I imagine an abstract machine with just the data types and operations that I want. If this machine existed, then I could write the program I want. But it doesn’t. Instead I have introduced a bunch of subproblems — the data types and operations — and I need to figure out how to implement them. I do this over and over until I’m working with a real machine or a real programming language. That’s the art of design.

Barbara Liskov, https://www.quantamagazine.org/barbara-liskov-is-the-architect-of-modern-algorithms-20191120/

Curious how Liskov echoes the Alan Kay's idea of objects as "little Turing machines exchanging messages" and Dijkstra's quote "the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise".

These ideas seemingly naturally lead to the Language-Oriented Programming and DSLs, but those trigger hard pushback from vast majority of developers... 🤔
👍3👎21
— Если не можешь положить на это жизнь, положи хуй.
🤔51😁1🤡1💯1
Chad (китайские) кофейные весы:
— стоят пять баксов в базарный день
— включаются за пол-секунды
— вычитают тару мгновенно
— имеют встроенный секундомер

Virgin (китайские) смарт-весы:
— стоят как деталь от вертолёта
— включаются пять секунд
— вычитают тару пять секунд
— имеют бесполезный блютуз, но нет встроенного секундомера

🤦‍♀
😁1🎉1💯1
"Стартапческий маразм"
👍4😁1🤡1🤣1

smart people are overrated. Let me put it this way: if you’re a smart astrologer, you’re still not gonna be able to do “real” astrology, which doesn’t exist

https://statmodeling.stat.columbia.edu/2023/01/10/fields-where-it-matters-that-theres-no-there-there-fields-where-you-can-thrive-on-b-s-alone-and-everything-in-between/

Андрю жжот! 😁
😁3🤔1🥱1
https://statmodeling.stat.columbia.edu/2023/01/03/explanation-and-reproducibility-in-data-driven-science-new-course/

WOW, a great reading list on #statistics and #machinelearning ! And an important topic for a course. Especially targeting CS students.
Дао Дэ Дзин 2023 — блог о Дао и Дэ.
🤔2🤡1
Так-то в наше время Лао Цзы, конечно же, вёл бы Твиттер — у него как раз все высказывания в лимит укладываются. А комментарии не читал бы никогда, ибо "большое отшельничество".
🤣3👍1🤡1
Решил поведать про новую и захватывающую тему в области машинного обучения — https://en.wikipedia.org/wiki/Reservoir_computing
На самом деле не особо новая — развивается с середины 2000х — но настолько прикольная, что удержаться невозможно.

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

Но перцептрон — это не круто, очень старая и скучная архитектура, лучше взять что-то поинтереснее, хотя бы рекуррентные нейронные сети. Так у нас возникает система с обратными связями. Её можно описать разностной схемой, а в пределе получатся дифуры. Дифуры — это круто и уважаемо. Есть даже ещё более маркетинговое название — динамические системы, звучит гордо.

А теперь подумаем, так ли нам важно, что там происходит в недрах нашей нейронки? Этого всё равно никто не понимает! Но зачем-то же мы производим это преобразование в многомерное пространство, почему-то же это работает? Ну, в задачах классификации мы предполагаем, что нелинейное отображение в многомерное пространство "растаскивает" точки подальше друг от друга, и так становится "виднее" и понятнее, кто к какому классу принадлежит. Т.е. главное — чтобы после преобразования соседние точки оказались разнесены далеко друг от друга.

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

Между делом мы пересекли другую линию исследований, которая началась чуть раньше и развивалась параллельно: https://en.wikipedia.org/wiki/Extreme_learning_machine
По факту, это использование случайно инициализированных стандартных feed-forward NNs, где обучается только последний слой. Промежуточные слои производят неведомое нелинейное преобразование, но нас это устраивает, потому что главное — научиться правильно интерпретировать результаты.

Но я предлагаю заглянуть в прошлое намного дальше и проследить истинные истоки этих идей. Поскольку практиковать их начали ещё в древнем Риме! А что, стая птиц — это сложная динамическая система с обратными связями, в чём-то даже хаотическая. Не хуже других естественных динамических систем. Главное же — научиться правильно интерпретировать конечное состояние... 😏
👍6🤔2🤯2