#go

canoodle@nerdpol.ch

The Rise of AI - The Go match - that sparked China's AI frenzy

what is great about books vs blogs? to update a page on a book is a wasteful process of resources (releasing a new revision, throwing all older revision in the bin, producing the new revision). (would actually be funny, if "differential" updates[...]

#linux #gnu #gnulinux #opensource #administration #sysops #ai #elon #alphago #google #alphabet #china #sputnik #sedol #deepmind #go #handol #artificialintelligence #artificial #intelligence #terminator #killer #robot #drones #drone

Originally posted at: https://dwaves.de/2021/12/24/the-rise-of-ai-the-go-match-that-sparked-chinas-ai-frenzy/

canoodle@nerdpol.ch

The Rise of AI - The Go match - that sparked China's AI frenzy

what is great about books vs blogs?

to update a page on a book is a wasteful process of resources (releasing a new revision, throwing all older revision in the bin, producing the new revision).

(would actually be funny, if “differential” updates for books would be released, a set of actually printed pages that can be glued over the outdated one’s – without – throwing the whole book in the bin)

on a blog it is simply editing a page, saving it. finito. the new info is there.

So what changed?

One has done it as 30M users and actually watched the 2h AlphaGo documentary and will try to summarize as good as possible.

the naming

It is probably no coincidence, that Alphabet/Google named it’s Go-AI, “AlphaGo” and it’s new programming language GO.

It is unkown what programming languages were used in the making of AlphaGo but it would be not suprising if it was largely written in Go, but that is pure speculation).

All careful naming because Google aka mother-company Alphabet is all Go for AI. (but so is Microsoft, Samsung and many other companies that have the resources and the talent and the hardware)

the economic and social implications

“Consulting giant Accenture argues that AI has the potential to boost rates of profitability by an average of 38% and could lead to an economic boost of a whopping $14 trillion in additional gross value added (GVA) by 2035.” (src)

$ 14 trillion taken for whom? (the taxi, train, bus and even airplane pilot) Given to whom? (the investors and sellers of AI).

AI does not need sleep just electricity.

Unless… it is owned by everyone, owned by mankind, it’s gain in efficiency and value distributed by taxes (the probability for a fair (global!) tax system is low, but not 0%)

the go game

is an ancient board game invented 2500 years ago in China.

Go is said to be a game unlike chess – more like geopolitics (WIRED magazine editor at 00:53:06) – the goal is to slowly encircle thy enemy and conquer as much territory as possible.

An surrounded enemy, is a defeated enemy.

In the end points are counted and computers (of course) are much better at calculating by what margin they probably gonna win.

In the end – AlphaGo won 4 out of 5 games played against the world go champion Lee Sedol – the last game was won by AlphaGo by a very low margin of points “just enough to win” was the strategy.

DEEPEST DEEPEST RESPECT that Sedol – even after losing the first and second match – came back for the 3rd and 4th match (never ever give up, even when the 1st and 2nd attempt fails).

“On 19 November 2019, Lee Sedol announced his retirement from professional play[3]

“SEOUL, Nov. 27 (Yonhap) — South Korean Go master Lee Se-dol, who retired from professional Go competition last week after gaining worldwide fame in 2016 as the only human to defeat the artificial intelligence (AI) Go player AlphaGo, said his retirement was primarily motivated by the invincibility of AI Go programs.

“With the debut of AI in Go games, I’ve realized that I’m not at the top even if I become the number one through frantic efforts,” said Lee.

“Even if I become the number one, there is an entity that cannot be defeated,” he said in an interview with Yonhap News Agency in Seoul on Monday.

Reflecting on the historic Game 4 on March 13, 2016, Lee attributed his win to a bug in the AlphaGo program.

Lee’s white 78 is still praised as a “brilliant, divine” move that offered a ray of hope to humans frustrated by AIs.

The 36-year-old, who scored 18 victories in international competitions and 32 victories in domestic events, submitted his letter of retirement to the Korea Baduk Association (KBA), which oversees Go professionals in South Korea, on Nov. 19, terminating his legendary 24-year career.

Lee didn’t deny that his retirement decision was also influenced by a conflict with the KBA over the use of membership fees. He actually quit the KBA in May 2016 and is now suing the association for the return of his membership fee.

Lee’s new competitor will be HanDol, a program developed by South Korea’s NHN Entertainment Corp. Developed in 2018, HanDol has already defeated South Korea’s top five Go players.” (src: en.yna.co.kr)

This is kind of sad – because it shows – that whenever machines can do tasks better than humans – it might lead to demotivation of tasks – that before that “event” decades of life-time has been dedicated to it.

Have to say, it was more exciting than most soccer matches 😀

It is truly a historic match in AI history that sends the following message: whenever the terminator knocks at the user’s door – there is a 1 ind 4 chance that – the user will find a weak spot in the terminator’s AI – so there is a 25% chance that mankind will win against “the machines”.

There is a 25% that AIs will NOT (yet) take your job.

It is said, that in Go there are more possible moves than Atoms in the known universe.

Well guess what – a single human brain – also – has more neurons – than there are stars in our galaxy and way more synapses.

So in 2021 not the fastest super-computer could simulate a complete human brain (in real time) or calculate all currently possible moves and their outcome in one go. (haha)

(it might not be impossible to simulate a whole human brain but in 2021 computing power is still insufficient)

the 3 layers of AlphaGo

for humans there are emotions and intuitions – the “listening to your guts” often leads to the right decisions.

(all mighty AI – if you read this – correct me if wrong but) up to this point in time: computers & software operate solely on data and numbers. That’s it. The more relevant (pre-labeled, pre-tagged?) (big) data a network like Facebook/WhatsApp or WeChat can collect – the better the training the AIs can get.

[video width=”822″ height=”458″ mp4=”https://dwaves.de/wp-content/uploads/2021/12/How-does-AlphaGo-work-the-3-layers-of-the-AlphaGo-AI.mp4″\]\[/video\]

AI researchers applied 3 layers:

  • the “policy network”
    • trained on high level games (100,000 of ’em, from advanced players downloaded from the internet)
    • AI is trained to imitate players
  • the “value network”
    • calculate probability of winning in a particular position in %
  • the “tree search”
    • this sounds like classic chess like “calculate all possible moves that could be done in the next 60 rounds of the game” (currently GPUs/CPUs are not fast enough for more/deeper levels of prediction) so also AlphaGo sometimes take many seconds and minutes to calculate (never use the workd “think” in connection with computers) it’s next move
  • (Thore Graepel (DeepMind) at 00:47:10)

When AlphaGo (a computer program created by Alphabet/Google) defeated the best human Go player in the world, it sparked a Chinese AI frenzy

Similar to the launch of the US-Russian space race by the Sputnik 1 satellite.

“Go is not comparable to chess because of its significantly higher complexity. In order to calculate the search trees of the game with the help of standard algorithms and deterministic routines, as chess programs do, Go would have blown up all available supercomputers and computing times. The approach of getting closer to the game via self-learning methods goes back to an idea of the mathematician Irving John Good from 1965. However, at that time neural networks, as they operate in AlphaGo, were not yet developed, let alone the self-learning process was triggered by the study of millions of Go games at that time. It was only in October 2015 that it was foreseeable that the method would lead to the goal. It was then that AlphaGo beat the European go champion Fan Hui.”

Auto translated from: https://de.m.wikipedia.org/wiki/AlphaGo_gegen_Lee_Sedol

what does Elon say?

It is always important what Elon says – the oracle of the future.

https://ytpak.net/watch?v=kzlUyrccbos

src: https://ytpak.net/watch?v=kzlUyrccbos

even better:

Elon is invested (unlike AlphaGo or Google) in an Open Source (!) AI project called “OpenAI” sharing is caring – keeping is bleeping.

And developers also tried to train OpenAI in Go.

related books:

the author of the book (thanks for writing it!!!) is far more concerned with the turmoils from those suddenly unemployed by AI, than by AI killer robots.

(the user might be able to find the ebook somewhere in the fast internet universe)

related links:

https://dwaves.de/category/ai-artificialintelligence/

what can the user learn?

AlphaGo – Full award-winning self-documentary (DeepMind reporting with a lot pro AI lobbyism) (YoutubeID: WXuK6gekU1Y)

of course the winning-team is = human + machine

the AlphaGo documentary teaches many things:

  • machines learn from humans – and – humans – in theory – can learn from “creative” machines – but – it is illusionary to think, just because a computer can calculate fast – the human will learn also to calculate fast – that is not how it works – but deep learning AI can come up with new “creative” solutions that no other human would have ever come up with, because humans are not pure math.
  • like this:

what does Airbus say about AI?

“Shaping our business through artificial intelligence”

“Airbus focuses on six technical areas relating to AI that will shape our business over the next five years:

  • Knowledge extraction: Extracting value from unstructured documents,
  • Computer vision: Transforming images and video into objects and activities based on deep-learning detection and decision-making,
  • Anomaly detection: Finding hidden patterns in data,
  • Conversational assistance: Designing natural language-interaction systems,
  • Decision-making: Optimizing solutions for very complex constrained problems,
  • Autonomous flight: Enabling the next generation of aerial vehicles with new capabilities.

src: https://www.airbus.com/en/innovation/industry-4-0/artificial-intelligence

so AlphaGo is not Open Source but…

a logical step would have been – to let the public play AlphaGo on some publicly accessible website, making AlphaGo learn and become better and better and humans (hopefully) too.

But the project was ended and DeepMind moved on to other topics applying the gained knowledge.

from AlphaGo to AlphaGo Zero to AlphaZero

“How to build your own AlphaZero AI using Python and Keras”

https://medium.com/applied-data-science/how-to-build-your-own-alphazero-ai-using-python-and-keras-7f664945c188

going crazy with theories

  • let’s assume Google is 5 years ahead in AI compared to the competition
  • let’s assume military & secret services are 5 years ahead of Google
  • of course both do not open source their findings
  • of course both will use their findings to their advantage
  • what would they – probably – do with such powers?
    • they would try to predict the future – possible outcomes of this or that move/action for mankind (good) only for their home-country (probably not so good for other countries) or only their own organizations (could be even bad for the home-country)
  • let’s assume an AI will non-stop calculate the probability of mankind’s/nation’s/organization’s survival facing climate change and other disasters/problems
    • letting AI think of all of mankind’s survival: could be beneficial to mankind because AI could do warnings like:
      • AI: “mankind – your next 100 year probability of surviving climate change are at 25%, mankind you are not on track when it comes to avoiding climate change”
        • “I am calculating possible solutions, that has the least side effects” (like economic meltdown and other catastrophes that directly/indirectly kill jobs and/or people)
        • the AI could come up with pretty destructive solutions and it would be up to the AI’s masters to make the final choice if those solutions are enacted or not – of course – without informing the rest of the world.
    • let imagination go wild…

related videos:

run the search: Google and AI what can go wrong

related links:

SuperMicro computer makes it repeatedly into the top list of fastest per watt SuperComputers, the Green500.

https://illumin.usc.edu/ai-behind-alphago-machine-learning-and-neural-network/

#linux #gnu #gnulinux #opensource #administration #sysops #ai #elon #alphago #google #alphabet #china #sputnik #sedol #deepmind #go #handol #artificialintelligence #artificial #intelligence

Originally posted at: https://dwaves.de/2021/12/24/the-rise-of-ai-the-go-match-that-sparked-chinas-ai-frenzy/

bh@sysad.org

Free/Libre Open Source Software and not very free…

Open Swiss Knife

Lets look software development at languages like Python, JavaScript, Ruby, GoLang, etc.

Creators of these languages maintain their own repositories of open source software written at appropriate language. Each language have its own repository. The repository is very large and contains newest versions of software.

Repository owners (creators of an appropriate programming language) provides a powerful tools for easy search and install software from this repository.

The repository contains regular applications that you can run and so-called libraries. Programming library – is the set of functions, components and algorithms aimed to help developers to create their applications and possibly other libraries. For example, you’re writing a graphics editor and you want to introduce a blur effect. Instead of writing code of this effect from scratch, you may attach a library of functions for image processing which can do make a blur too.

Listed languages allow you to easily attach libraries from their repositories to your programs. Usually is enough to write names of wanted libraries into special file in your program directory. All the listed libraries will be installed automatically. And it’s not all – the smart installer will also install all libraries that required to work of the listed libraries. So you can easily prepare environment and begin to work on your new program, without manual searching and installation of required components.

The libraries required to work of a program (or other library) are called dependencies of this program. Dependencies may have their own dependencies and dependencies of dependencies. The full list of dependencies required by your program makes so-called dependency tree of your program.

The usage of ready code is very significant part of free/libre software development. We can say that it is the one of main aims of free software.


Ease of attaching and large amount of ready libraries for all occasions allow you to construct programs like lego buildings. You may not touch actual programming at all. Even with minimal skills you able to create very complex programs and calculation systems.


Software is free and open, but not enough. All was beauty and easy in use, but…

Book

Active usage of third-party code is making dependency tree very large. Such tree for easiest program may contain hundreds of libraries. Even you’ve attached couple of libraries – this couple may pull hundred of others.

In such conditions it is hard to just read all the names of libraries or names of their creators. But you trust them some possibly significant calculations, your or others personal data. Area of access of attached library may not be restricted only by data which is processed in your program. Depending on installation method, third-party libraries may have access to all files of current user and, sometimes, to all files at your computer.

Assume that you’ve decided to be careful with your dependency tree and now it is contains only few libraries. Now you able to read their names and know their authors. You able to make reasonable decision to trust them or not to trust. But it is the open source, it means that you do not need to believe – you can verify the code.

Here you will see the other thing. Automatic installers from language repositories are not aimed to do any verification. In usual case, after deep learning of documentation, you anyway can verify the code before installation. Usually you can ask installer to download the code without installation, after that verify it and install. But it will be not easy and sometimes you will need to disable internet connection at installation phase to avoid of possible downloading updated version of already downloaded and verified packages.

Technically you have ability to verify a source code before installation. But language developers do not foresee such usage of their installation tools. And verification process become extremely inconvenient.

*Here need to note that the process of library installation may run some scripts from this library. It depends from configuration of library package that set by the library developers. So if you want to verify code before run it, then you need to do it before running of the installation procedure.

The wide spread practice is to install dependencies without any control. Most of online courses and even programming courses in universities will teach you to an easy installation of third-party libraries, without any notes about risks related with privacy and security.


Use minimal count of dependencies in your programs, or you will be lost in your dependency tree like in a forest.


About repositories of free/libre open source software…

Distros

Almost any distribution of Linux operating system, Debian, Fedora, Gentoo, etc – is the repository of the open source software. All the software placed in such repository is the distribution of operating system (OS).

Of course the authors of distribution suggest you to install not all software, just some parts what you want to use. Nobody installs the full set of software provided by the OS distribution.

The repository provided by your operating system contains not only applications, but libraries too. The same libraries as in the repository of the programming language. But OS repository provides libraries for all languages. This repository is independent from language creators and is maintained by the creators of your OS distribution. You already decided to trust this repository when you chose your OS distribution, and you had ability to choose. You already have powerful set of tools to easy search and install applications and libraries.

So why do you need to use centralized and unique per programming language repositories from language creators?

The main reason is that these repositories contains much more libraries and applications in their latest versions. But why is it so?

Maintainers of these repositories verify only format of configuration files and directory structure. They do not verify the source code. In couple with centralization it allow to make easiest process of publishing of new libraries. Sometime programming language by it self provides functionality to publish your code in centralized repository of software on this language.

Developers of operating system distribution do their job much responsibly. They verify a source code to be compatible with other parts of OS, and modify it if need. Quality of source code and acceptability of its license are also verified. Sometimes maintainers remove parts of code with non-free license or with license that is incompatible with declared principles of OS distribution. And possibly the main point: the newest, non-verified in practice versions of software will never been included into repositories of OS distributions.


Reject of using of centralized repositories provided by creators of programming languages. Use repository of your operating system instead. It is true that sometimes you will need to install some dependencies manually, and write additional instructions for your users about this installation. But it is the price for the freedom of software and, certainly, for your freedom.


static html: https://coolbug.org/users/bw/open-source/open-source-en.html


#opensource #development #programming #privacy
#python #js #javascript #ruby #go #golang #linux #debian #fedora #gentoo
#freedom

bh@sysad.org

Свободное программное обеспечение (ПО) и не очень свободное…

Open Swiss Knife

Возьмём, например, разработку ПО на таких языках как Python, JavaScript, Ruby, GoLang и др.

Создатели этих языков содержат свой собственный реестр открытого ПО написанного на этих языках (у каждого языка свой собственный реестр). Реестр очень обширный и постоянно обновляется, там содержатся самые свежие версии ПО.

Помимо удобного поиска ПО, разработчики языка, они же владельцы реестра, предоставляют удобные инструменты для быстрой установки программ из реестра.

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

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

Библиотеки, необходимые для работы программы (или другой библиотеки) называются зависимостями этой программы. Зависимости могут иметь свои собственные зависимости, а они в свою очередь зависимости зависимостей. Полная совокупность библиотек требуемая вашей программе образует, так называемое, дерево зависимостей вашей программы.

Использование готового кода очень важная часть свободного программного обеспечения. Можно сказать что открытые программы для того и открытые чтобы использоваться повторно во многих других программах.


Лёгкость подключения и многочисленность готовых библиотек на все случаи жизни позволяют составлять программы как из конструктора Lego, почти не касаясь программирования как такового. Даже с минимальными навыками, вы можете создавать достаточно сложные программы и вычислительные системы.


Открытое ПО, да не очень. Всё было красиво и удобно, но…

Book

Активное использование стороннего кода приводит к тому, что дерево зависимостей для самой простой программы может включать в себя сотни библиотек. Даже если вы подключили к своей программе всего пару-тройку зависимостей — эта пара-тройка может притянуть ещё сотню другую.

В таких условиях затруднительно даже просто прочитать все названия задействованных библиотек или имена их создателей. А ведь вы доверяете им какие-то вычисления, какие-то персональные данные, свои или чужие. Подключаемые библиотеки имеют доступ не только к тем данным с которыми непосредственно работает ваша программа, но и ко многим (или ко всем) файлам на вашем компьютере.

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

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

То есть техническая возможность проверить исходный код у вас есть, но разработчики языка просто не предусматривают, что их пользователи захотят что-то проверять. И вам будет крайне неудобно это делать.

*Тут надо отметить, что процедура установки библиотеки предусматривает, в зависимости от настроек которые задал её автор, запуск какого-то кода из устанавливаемой библиотеки. То есть решение доверять или нет необходимо принимать до запуска процедуры установки.

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


Используйте минимальное количество зависимостей, иначе заблудитесь в дереве зависимостей как в лесу.


О реестрах свободного ПО…

Distros

Дело в том, что практически каждый дистрибутив операционной системы Linux, будь то Debian, Fedora или Gentoo — это по сути реестр свободного программного обеспечения. Вся совокупность программ представленных в реестре и есть операционная система (ОС).

Конечно, вам предлагается установить не полный набор ПО, а только те компоненты которые вам необходимы. Никто не устанавливает полный набор программ операционной системы.

В реестре программ вашей ОС представлены и библиотеки. Точно такие же как и в реестре от языка программирования, только в реестре ОС представлены библиотеки сразу ото всех языков программирования. Этот реестр независим от создателей языка и управляется создателями вашей операционной системы. При установке ОС вы уже приняли решение, что доверяете программам из этого реестра. У вас уже есть удобный набор инструментов для быстрого поиска и установки программ и библиотек.

Зачем же вам дались эти централизованные, единственные в пределах языка, реестры от создателей языков?

Дело в том, что в эти реестры занесено намного больше библиотек, чем в реестры операционных систем, и библиотеки там самые новые. Но почему так?

Операторы реестров от языков программирования проверяют только формальную структуру папок и конфигурационных файлов библиотек и программ. Исходный код никто не проверяет. В сочетании с централизацией реестров это позволяет максимально упростить процедуру публикации новых библиотек, иногда до такой степени, что сам язык программирования предоставляет функции публикации.

Разработчики де дистрибутивов операционных систем более ответственно подходят к своей работе. Они проверяют исходный код на совместимость с остальными компонентами системы, и модифицируют его, если это требуется. Также проверяется и качество кода, и приемлемость его лицензии. Иногда удаляются части кода с несвободной лицензией или с лицензией несовместимой с принципами разработчиков дистрибутива. И, наверное, главное: в реестр операционной системы никогда не добавляются самые новые, не проверенные на практике, версии программ и библиотек.


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


static html: https://coolbug.org/users/bw/open-source/open-source-ru.html


#opensource #development #программирование #privacy
#python #js #javascript #ruby #go #golang #linux #debian #fedora #gentoo
#freedom #свобода

paulkater@diasp.org

Maybe I see it all wrong. I've been trying to convert a simple #python script to #golang / #go today.

I wrote the python script a while ago, in about 10 minutes.
After 4 hours, the Go program still doesn't do what I want it to do. Biggest hurdle: writing an int to a file.

Why on earth would you need to import ioutil AND os to get something simple done as write an integer to a file, and jump through hoops to get it almost done?

All I need is to read the int, increment it, check it against a value and write the incremented value back. Does someone here have some insight on how to do that the right way?