↓ Skip to main content

Biology and genetics for AGI researchers

Question
#

Why are biology and genetics interesting to AGI researchers?

Answer
#

Because it may provide interesting ideas and clues that can help with the development of AGI.

We currently know of a single instance of a system that is able to produce human-level intelligence: a human being. AGI researchers often try to understand how specific components such as the brain works. A lot of valuable work on the neuron has led to the creation of the deep learning field. Deep learning has definitely proven its value, but I am more interested in something else.

Genetics is seen as the programming of life. What I find interesting is that we can see the current human DNA as our latest implementation of this code. Since this code did not come out of existence from out of nowhere, studying DNA’s history can give us ideas as to how a seed AI might come to be. It is also useful to understand how the environment has shaped DNA’s existence.

Initially, there were only atoms and molecules. Through different physical and chemical processes, these molecules aggregated and formed more and more complicated assemblies. Through a multitude of steps, we reached the point where there were cells that contained DNA inside of them. This process might have been entirely random although the formation of complex structures happening randomly does not seem highly likely. Understanding the mechanisms or processes that helped create this order may be the equivalent of a pre-evolution natural selection.

My hope is that by studying such fields it is possible to discover how DNA increased in length, what were the different steps and challenges that were encountered that forced it to increase in size, as well as the potential causes of parts of DNA changing over time.

Just like a git repository, I’d like to be able to look at DNA’s history and understand what happened to its code since its “Initial commit”. It might also be interesting to figure out what kind of programmer nature is.

References
#


Differences between brain and CPU

Question
#

What are the differences between a brain and a CPU?

Answer
#

  • The brain is extremely parallel (each neuron processing many signals), while CPUs are currently limited to a few cores.
  • The brain appears to be able to only do a single thing at once (single process, single thread).
  • CPUs can explicitly control their memory access while the brain memory organization and access is unclear.
  • The brain is a lot slower in terms of sequential operations, processing at a maximum of 250-1000 Hz while current generation (2020) desktop CPUs are in the 3-5 GHz range.
  • The brain does not have a clear instruction set.
  • The brain consumes glucose for energy, while a CPU consumes electricity.
  • The human brain is much larger (average 1273 cm3 for men, 1131 cm3 for women) than a CPU chip (Intel Core i7-10710U is 46mm by 24mm (height unknown but definitely less than 10 mm) which is less than 11 cm3).
  • Heat dissipation is done through cerebral circulation in the brain and through a heatsink attached to a CPU.
  • The brain is biodegradable, the CPU is not.
  • Signal is transmitted between neurons using neurotransmitters (chemically) while CPUs transmit signals between transistors electrically.
  • The organization of the brain evolves over time (in a single person), while a CPU chip will remain the same its whole life.
  • We currently cannot transplant a brain from one person to another, but we can transfer a CPU from one computer to another (as long as the motherboard is compatible).
  • The brain contains a large amount of memory, while the CPU has a small amount of memory and relies on larger memory stores (RAM, disks).
  • It is possible to reverse engineer a CPU by trying a different combination of inputs and recording the output (immutable). Doing the same with a part of the brain may result in different results as the brain is mutable.

To be determined
#

  • The brain may not have different levels of memory cache (we do however talk about short and long term memory).

References
#


Humans modeled as computers

Question
#

What do humans modeled as computers look like?

Answer
#

  • Numerous processes all running in parallel in different regions of the body and the brain (heartbeat, breathing, sight, smell, taste).
  • The brain runs multiple processes at once, each processing a different modal input (sight, taste, touch, hearing, smell).
  • Those processes are buffered and a process takes care of synchronizing the different input streams to create a coherent flow of information.
  • The spinal cord and nerves are network cables, transferring information from the limbs and other regions of the body to the main processing unit, the brain.
  • The eyes are digital cameras that can see into the world, converting photons into bits of data.
  • The ears are microphones that can listen to a limited range of frequencies (20-20000 Hz).
  • The mouth act as a speaker to emit sound for others to perceive
  • Touch is complex as it deals with textures, temperatures, moisture and pressures, however it can likely be modeled as a surface with discrete elements that measure a few things such as the force currently applied on it, the temperature, moisture.
  • Taste and smell are also complex as they are specialized receptors that will perceive different fragrances based on the distribution of particles that are perceived and that can be recognized.
  • The arms, legs, hands, feet are actuators used to interact with the environment.
  • The stomach and intestine are the power supply.
  • Neurons throughout the body act as distributed memory and storage, as well as processing units.
  • Blood is used as a mechanism to transfer energy between components. It also acts as a heatsink for the brain.

References
#


Answering your own questions

Question
#

Given a continuously growing number of questions one asks himself, what is the proper procedure to answer these questions?

Answer
#

There is no proper procedure per se. The most important is to get started. Write your questions down so that you have a list. When you have a new question, you can check if you have asked a similar question in the past.

In their book Algorithms to live by, Brian Christian and Tom Griffiths write (about scheduling)

In a thrashing state, you’re making essentially no progress, so even doing tasks in the wrong order is better than doing nothing at all. Instead of answering the most important emails first - which requires an assessment of the whole picture that may take longer than the work itself - maybe you should sidestep that quadratic-time quicksand by just answering the emails in random order, or in whatever order they happen to appear on-screen.

A lot of what I wrote in How do you prioritize things when there are so many of them competing against one another? and How can I organize all the webpages I never read? applies here, namely:

  • Record your questions in a single location that you can search
  • Do not spend time answering questions you don’t care about the answer
    • Record under such question that you decided not to answer them due to a lack of value
  • Prioritize the questions you would like to have an answer to
    • Evaluate how valuable is a question’s answer to you, and how much time you would be willing to spend to answer it
  • Look online for existing answers
  • Write down the answer to the question you asked yourself, you may ask the same question again in the future
  • Answer one question per day

I often joke around with colleagues at work that it’s easier to generate dumb questions than it is to answer them appropriately. As such, don’t spend your time on questions that are not worth answering.

If you dedicate a bit of your time every day to answer one question you asked yourself, you will slowly accumulate a large list of questions you’ve spent time thinking about and answering. Those answers may be useful to others, so make sure that you share as many of your answers with others.

References
#


Storing and updating large amounts of data

Question
#

How can an agent efficiently store terabytes of data, with hundreds of gigabytes updated daily?

Answer
#

This question comes from the idea that if we want to implement an artificial intelligence, it will have to be able to process a large amount of data daily, similar to how we need to process a stream of sensorial (sight, hearing, taste, touch, smell) inputs actively more than 12 hours per day.

In human beings, even though we perceive a large amount of incoming data, a lot of it is compressed through differencing, that is, comparing the previous input with the new input and only storing the difference. This is similar to how video is currently encoded and compressed. To be able to accomplish this feat we however need two things: a temporary buffer to store the previous input (or sequence of inputs), and a mechanism to differentiate between the previous and the current input.

That differentiation mechanism can be highly complex depending on the degree of compression desired. For example, if you shift all the pixels in an image by 1 on the x-axis, your differentiation mechanism may simply tell you that all the pixels have changed, return a delta between their previous value and new value and be done. In some cases you may be lucky and a large number of pixels have remained the same value. However, a much better differentiation mechanism would realize that everything has moved by one pixel on the x-axis and instead return to you that it detected a x+=1 transform, which compresses the transformation a lot more than by the simple pixel by pixel difference. In the case of the brain, one benefit it has is that it can correlate multiple input channels to make sense of what is happening and better compress the information. In the previous case, the eyes may perceive that all the signals are now different at each receptor. The brain however also receives information from the ears, telling it that the head moved by a certain amount, which most likely explains the transform that was applied to the eyes input.

In the brain we make use of the fact that the sensory inputs are different modes. Each is compressed somewhat independently from the others. As such, we would expect information that is similar in format to be compressed together (text with text, video with video, audio with audio, etc.) as it is likely to lead to the highest compression. Furthermore, being able to make use of the structure within the data will lead to better compression than simply compressing blindly a collection of inputs as an opaque blob.

I would expect such a compression system to make use of two types of compression: offline and online. Offline compression would occur during low periods of activity and would be able to offer higher levels of compression at the cost of less responsiveness during recompression. Online compression would occur when the system is actively being used and would rely mostly on fast encoding techniques to keep responsiveness high.

Online compression would rely on a lookup dictionary with a most used recently retention policy to compress blocks of data that have already been seen numerous times. The quality of the online compression highly depends on the assumption that what will be observed in the future is highly likely to be like what has been observed in the past. During the day, we spend most of our time in the same environment. As such, we experience and observe the same things for an extended amount of time. Being able to determine what is similar and what is different is what will lead to the highest amount of compression.

Offline compression would rely on the ability to make the most efficient use of the compute and memory available as this process would be time-constrained. It might be possible that the online and offline systems share information such that the online compressor can let the offline compressor know regions of data that might be ripe for recompression. In the case that both systems do not communicate, the offline system would likely benefit from knowing which regions have already been compressed to the fullest so that it spends most of its time processing data that was recently added. When it is done with this step, it can then attempt to increase the compression efficiency of all the data stored. Here again it should be able to make use of the differencing approach given that days will likely be highly similar. As such, we would expect the amount of space necessary to store a day to decrease drastically as more and more days of data are observed, possibly to the point where new days of data can be expressed as segments of previous days entirely.

References
#


Passive vs active agent

Question
#

Are passive or active agents more intelligent?

Answer
#

A passive agent is an agent that simply does its thing but does not interact with the environment.

An active agent is an agent that actively interact with the environment.

Given those two definitions, we expect the active agent to appear more intelligent because it behaves according to its environment and interacts with it. A passive agent may however also behave according to its environment, it just doesn’t try to alter it.

Is an agent that never says anything necessarily dumb? Such agent could be hiding all the information of the world within itself, and could potentially solve any problem thrown at him, but it simply does not offer such answers because it doesn’t interact with the world. The relationship between the agent and the world is one-sided, from the environment (on)to the agent. From the outside, the agent looks like an inanimate object that doesn’t know anything nor can it do anything. But if you are able to peek inside, you can observe the most complex processes occurring. I would suggest that such agent is highly intelligent.

In the stock market, we say that an investor is active if they regularly manage their portfolio, while a passive investor is one that manages their portfolio less frequently, depends on indexes instead of individual stocks and prefer to rely on the trend of stocks to make a profit. Active management is often compared to passive management as a benchmark, that is to say, you should not get involved in active management if your strategy cannot beat a simpler passive strategy. It is often the case that we see active investors as being foolish and more likely to lose money than passive investors.

References
#


A general characteristic of simple programs that are able to learn complex behaviors

Question
#

Is there a general characteristic of simple programs that are able to learn complex behaviors, such as neural network or RL-based algorithms that can be implemented in less than 100-250 lines?

Answer
#

I don’t know yet.

This question has come after thinking about DNA as being the code of human beings. DNA is also part of other animals, even viruses. Organisms use nucleotides to store the programs that are necessary to their existence. DNA is used to produce proteins within the body that accomplish various functions such as regulating our body, controlling our mood, our attention, our hunger, etc.

This code has evolved since we were non-biological. From a large amount of randomness (chemical elements), nucleotides were formed, which then somehow led to the formation of DNA itself after a likely long process. If through randomness we moved from a chaotic world to one with order and structure, and where a chain of DNA could finally emerge, it would be interesting to investigate the process in further details to determine whether it could give us clues regarding the process of creating a program that could evolve the same way DNA did.

Cellular automaton are also interesting to study in that aspect. By defining a small set of rules, it is possible to generate and observe complex behaviors.

One common behavior of cells is that they reproduce. As such, I would expect a program that can learn complex behaviors to have some reproductive function. Reproduction is considered as one of the traits of an entity being alive. My idea here is that exploring how we were able to massively populate the Earth may provide us with ideas on how a bit of code learned to lengthen itself, by the same process increasing the size of its host as well as the complexity and variety of cells that compose it.

References
#


Will an AGI be superior to a large group of individuals?

Question
#

Will an AGI be superior to a large group of individuals (e.g., society or a company)?

Answer
#

Most likely.

An AGI may be a strong single-minded entity. Unlike societies and companies that are composed of numerous individuals with different values/beliefs/opinions (VBO), an AGI is expected to have a single set of clear, concise and non-contradicting VBO. An AGI should be able to explore all potential alternatives and reason about all the potential sets of VBO in order to determine the most coherent and appropriate set to hold.

Meanwhile, we as individuals hold VBO that are often inconsistent. As a group, we are heterogenous in our VBO which means that conflict will arise since some sets of VBO cannot coexist. Our biggest issue is that we are competitive by nature. People fight over resources if they are limited. Fighting leads to winners and losers. The winners may not be necessarily the individuals with the “best” set of VBO. The fact that the “fittest” VBO may end up as the winner instead of the “best” set of VBO sounds unlikely to lead us to produce the optimal solution to a desired goal.

(This assumes that there is a single “best” VBO set and not various VBOs sets in the heterarchy of VBOs.)


Organizing unread content

Question
#

How can I organize all the webpages I never read?

Answer
#

TL; DR
#

  1. Delete articles you know you will never read
  2. Add articles you’d like to read one day in a system such as pocket
  3. Track when articles are added to your “must-read” list, after 1 year “graduate” them by deleting them from the list
  4. Estimate how long an article takes to read and how much value you expect it will bring you
  5. Use the ROI to order your reading list

The details
#

The following method applies to content online as well as offline (magazine article, books).

The first, most important, and difficult strategy, is to simply let go of those articles. Most of the time, we keep certain things out of fear of missing out. We may also think that if at some point we have free time we’ll go through them, however that never happens. We always try to find something new instead. This can be seen as a way for the mind to communicate that it doesn’t think it would be worthwhile to spend its time reading this content so it’s better not to and instead we should look for alternative content to read.

Once you’ve gotten rid of all those articles you decided you would never read you can add them to tracking systems such as pocket. The idea here is that it may be possible for you to read this content, but in other contexts than when you’re in front of your computer. Maybe you’d be likelier to read the article if you’re waiting in line or waiting for your bus/subway. Maybe you’d read it if you’re on your way to work.

Track when you add articles to your list. The older an article becomes, the less likely you will be to read it. As articles reach a certain age, it might be time to graduate them to the graveyard, in other words, to never read them. Mark them as read or remove them from your reading list.

You should have an idea of how long an article takes to read. Pocket offers an estimate of how long it takes to read an article. Knowing how long it takes to read an article is important since one of the techniques to get rid of articles is to go through all the short articles first since the time investment may be low.

As in the case of task management, the strategy we will want to adopt to organize and prioritize our reading will be related to the return on investment (ROI) metric. Each article should have an estimate of the value it will bring you to read it (e.g., how much you would have paid to acquire this knowledge), as well as an estimate of the effort (duration, e.g., how long it takes to read the article according to pocket) necessary to go through it. You can then order your reading list from articles with the highest ROI to the least ROI and feel more confident that you are reading high (expected) value content.


How to prioritize which book to read

Question
#

How can I easily identify the next book I should read when I have over 500 to choose from?

Answer
#

TL; DR
#

  • Pick highly read books
  • Determine why you want to read, this will filter out many books from your list
  • Track how long you’ve wanted to read a book, you’re more likely to read ones you recently added to your list
  • Fiction: pick based on your tastes of the moment
  • Non-fiction/technical: select a few books on the same topic, skim through them, then pick the best

The details
#

My first heuristic when deciding which book to read is to consider how many people have already read it by using a site such as goodreads. The reason is that I want to read books that I may be able to discuss with others who will also have read the book. Reading niche books might be interesting, but it makes discussing them a lot more difficult.

For fiction books, I read books from a collection I’ve enjoyed at least one book. You could basically consider it book “social” proofing. For new books that are not part of a collection and from authors I’ve never read, I mostly decide based on my interests of the moment.

For non-fiction/technical books, I skim through a few books on the same topic and determine which book I feel the most confident will provide me with the most information presented in the most appropriate and succinct way.

Determining why you want to read will help you figure out what the most appropriate next book might be. You may want to relax and thus reading a technical book may not be appropriate while a fiction book would be. You may want to learn a new programming language and thus reading about a programming language you already know will not achieve that goal.

I suggest using a book tracker like goodreads as it will allow you to track when you added a book to your list. This will let you know how long the book has been sitting in your reading list, waiting to be read. Generally, the longer a book stays “shelved” the less likely it is you will ever read it. This generalizes to stating that most books are read in a LIFO (last in, first out) fashion.

References
#