• Advertisement
Sign in to follow this  

My thoughts on AI. (It's not about games in particular)

This topic is 2135 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Confusing text removed. I hope that's ok in this forum.
But if you really want to see what was confusing by reading the text yourself, click the 'hstory' button on the button of the post to see the deleted text.

The current thread related text I want to talk about has 14 steps and is a few posts down.

Share this post

Link to post
Share on other sites
For the music piece - why specifically ANNs and not, say, Markov chains?

I suspect you'd get much better music out of a Markov model or something similar rather than a neural network.

(Snark for Dave's sake: you could probably get equally good results from a random tone generator with a lot less effort. I jest, but ANNs aren't exactly the right tool for this kind of job.)

It seems to me like you're taking ANNs and trying to hit everything with that particular hammer, instead of looking for much more suitable modeling techniques and approaches to simulation and problem solving.

Share this post

Link to post
Share on other sites
Speaking as an AI programmer and an ex- music theory and composition major, this is seriously twisted. Apoch is correct. All a NN is good at doing is detecting patterns and spitting out some sort of assumption. There has been automatic composition software designed quite successfully based on Markov chains as he suggested.

Share this post

Link to post
Share on other sites

All a NN is good at doing is detecting patterns and spitting out some sort of assumption.

Google "deep belief net" or "Geoffrey Hinton". You can get a NN to do the same things a Markov chain would by running the network backwards.

Share this post

Link to post
Share on other sites
Jeremy; the idea of treating data as some form of geometry is at the core of most of these sorts of algorithms, so you've got the right idea.

A neural network treats the input as a coordinate-- we use the term Vector instead of coordinate, but I'll use coordinate here for simplicity. If you have two inputs, you have a two dimensional coordinate. If you have 50 inputs, then you have a 50 dimensional coordinate.

The network, through it's weights and activations, will "project" the input coordinate on to a lower dimension. Its like how your shadow is a 2D projection of your 3D self. If you're network has only two outputs, then you can take the 50 dimensional input and use the network output to draw its location in two dimensions.

A network that performs well will make it so that inputs that are "similar" end up being close together when they are projected on to a lower dimension. If your input data describe fruit, and had 10 input parameters, and the network had two outputs which you treated as x and y coordinates on a graph, you would expect all apples to be clustered together, all bananas together but far from apples, etc..

Definitely look up Markov chains. There was a post on gamedev in the AI forums a few months ago where someone shared some results of using Markov chains to generate music.

Share this post

Link to post
Share on other sites
Every time you post something I try to read it, but after just a couple of sentences, some "formula" appears with no explanation whatsoever as to what anything in the formula means. I feel you didn't give me a chance to understand what you are saying and I quickly lose interest.

If there is some merit to your ideas, I can't figure out what it is, because your descriptions are not intelligible. I can assure you nobody understood what you meant by "(a=a)" being the input.

Share this post

Link to post
Share on other sites
This is my fourth version of my idea.
The first version I put the pieces together using abstract thought.
The second version I put different concepts together from music, and geometry to help my idea become clearer.
The third version I tried to explain what I had found, but I didn't know it wasn't clear what I was referring to as I explained it.
So this fourth version I will list the things you need to understand.
Then I will put these things together in a step by step method so at the end of the steps you will have a clear idea of what I have explained.


1.) You need this list of the twelve major keys in music.
Inside the parenthesis is the chords of the key.

Cb Major ((Cb Major), (Db), (Eb), (Fb Major), (“Gb” Major), (Ab), (Bb diminished))

Gb Major ((Gb Major), (Ab), (Bb), (Cb Major), (“Db” Major), (Eb), (F diminished))

Db Major ((Db Major), (Eb), (F), (Gb Major), (“Ab” Major), (Bb), (C diminished))

Ab Major ((Ab Major), (Bb), (C), (Db Major), (“Eb” Major), (F), (G diminished))

Eb Major ((Eb Major), (F), (G), (Ab Major), (“Bb” Major), (C), (D diminished))

Bb Major ((Bb Major), (C), (D), (Eb Major), (“F” Major), (G), (A diminished))

F Major ((F Major), (G), (A), (Bb Major), (“C” Major), (D), (E diminished))

C Major ((C Major), (D), (E), (F Major), (“G” Major), (A), (B diminished))

G Major ((G Major), (A), (B), (C Major), (“D” Major), (E), (F Sharp diminished))

D Major ((D Major), (E), (F Sharp), (G Major), (“A” Major), (B), (C Sharp diminished))

A Major ((A Major), (B), (C Sharp), (D Major), (“E” Major), (F Sharp), (G Sharp diminished))

E Major ((E Major), (F Sharp), (G Sharp), (A Major), (“B” Major), (C Sharp), (D Sharp diminished))

B Major ((B Major), (C Sharp), (D Sharp), (E Major), (“F Sharp” Major), (G Sharp), (A Sharp diminished))

F Sharp Major ((F Sharp Major), (G Sharp), (A Sharp), (B Major), (“C Sharp” Major), (D Sharp), (E Sharp diminished))

C Sharp major ((C Sharp Major), (D Sharp), (E Sharp), (F Sharp Major), (“G Sharp” Major), (A Sharp), (B Sharp diminished))

2.) You need to watch this video; determining chord progressions in a song

3.) Now you watched the video you know how this formula works:

Diatonic harmony

From chord 1, go to any chord.
from chord 2, go to chord 5 seven
from chord 3, go to chord 6
from chord 4, go to chord 1 or chord 5 seven
from chord 5 seven, go to chord 1
from chord 6, go to chord 2

4.) Example song. The chords use the formula from 3; 1, 6, 2, 5 seven, 1

Now I will show you something.
Group two side by side chords, I will call them chord 1 and 2.
Now in chord 1, go to the key it corresponds to and count how many keys it is from chord 1 to chord 2.
Then do the same for chord 2, go to the key it corresponds to and count how many chords it is from chord 2 to chord 1.

It looks like the below example;

In the C key, how many chords is it from the c chord to a chord = 6
In the A key, how many chords is it from the a chord to the c chord = 3
6 > 3 = c > a

In the A key, how many chords is it from the a chord to the d chord = 4
In the D key, how many chords is it from the d chord to the a chord = 5
4 < 5 = a < d

In the D key, how many chords is it from the d chord to the g chord = 4
In the G key, how many chords is it from the g chord to the d chord = 5
4 < 5 = d < g

In the G key, how many chords is it from the g chord to the c chord = 4
In the C key, how many chords is it from the c chord to the g chord = 5
4 < 5 = g < c

1, 6, 2, 5 seven, 1 = c ( c > a < d < g < c )

5.) The video from 2 showed that the order the major chords are played in the key is as shown in the chart below.
The three major chords are shown in the same order the 12 major keys are shown in 1.
The key I want to show in-particular is the C key, it's major chords are; C Major, G Major, F Major

Gb Major, Db Major, Cb Major

Db Major, Ab Major, Gb Major

Ab Major, Eb Major, Db Major

Eb Major, Bb Major, Ab Major

Bb Major, F Major, Eb Major

F Major, C Major, Bb Major

C Major, G Major, F Major

G Major, D Major, C Major

D Major, A Major, G Major

A Major, E Major, D Major

E Major, B Major, A Major

B Major, F Sharp Major, E Major

F Sharp Major, C Sharp Major, B Major

6.) 2D Cartesian coordinate. Watch this video to see what I'm referring to;

After you watch this video, what I am using is these coordinates, it shows a line on the graph:

7.) Now using 5 to show how the C key plays the major chords, I will show how this can be numbered as shown in 4;

f( (key of f(f chord to c chord = 5) ) > (key of c(c chord to f chord = 4) )) /* this shows how the chords can be counted, as shown in 4. */
c ( c > g & < f ) /* This shows the order the major chords are played, the greater and lesser signs are from how they were counted, as shown in 4. */
g( (key of g(g chord to c chord = 4) ) < (key of c(c chord to g chord = 5))) /* this shows how the chords can be counted, as shown in 4. */

8.) Now showing how the 2D Cartesian coordinate works like 7.

(0,0) (-1,-1) (1,1) = c ( c > g & < f )

The equation shows that the c is greater than g, as 0 is greater than a negative.
And also that 1 is greater than both 0 and a negative.

The equation is true. So music can be fit into the 2D Cartesian coordinate, which shows the order the major chords are played in looks like a line.

9.) Now to show how the formula from 3 makes the c chord acts like a magnet.

Because C is the tonic key, c is the first chord played, then the other chords are played.
The formula makes the chord end up back at C.

From C to chord 3 'e', we go to chord 6 'a', then to chord 2 'd', then to chord 5 'g', then back to chord 1 'c'.

So what I am implying is two part;
part 1; the the equation shown in 8 shows a line on the 2D graph. From c out to the other chords.
part 2; the formula from 3 brings the chord back to c.

Meaning the sound from C on the graph goes out in a straight line, then back to the center of the graph; outwards then inwards, like gravity.

To see if this looks like gravity though. Using the formula from 3, play a example tune; (1, 6, 2, 5 seven, 1), but now the chords highlight the key it represents from the chart in 1.

You'll see the outmost key light up then fall back to the c key, like a feather falling down.

10.) If 9 is true then when the chords go out from c they equal something on the 2D graph so they are in a straight line to c.

This is the key of C; C Major ((C Major), (D), (E), (F Major), (“G” Major), (A), (B diminished))

If the chords in the key are represented by the arrangement of the corresponding keys, when the magnet effect happens there is linearity and it's easier to see.
This is what the arrangement of the chords look like if they are represented by the keys;
(F Major)
(C Major),
(“G” Major),
(B diminished)

But the keys arrangement only makes the magnet effect easier to see, the chords still need to keep their numbered place in the key.
So even though c is the second one down it still is counted as chord 1, d = 2, e = 3, f = 4, g = 5, a = 6.

Now the coordinates start at (0,0), not 1, and f belongs to the side mostly musically flat, while the other keys beside c belong mostly to the musical sharp.
So if the number values keep the arrangement of the keys, but c starts at (0,0), then there can be both positive and negative as shown in 8.

But one small adjustment to 8 is I switched the values so positive = sharp and flat = negative. Or else if I kepp the structure then sharp would be negative and flat positive.

So this is the way it should be:


But that looked wrong to me so I switched it around so it looked prettier to me:

For now it doesn't matter since this is just theory.

11.) Now to create variety I will create an equation, so now the chord coordinate is made of two addends that must equal each other for the chord to exist.
b is random and must be matched from the set of b to the matching a, I envision a artificial neural network doing the matching.

So coordinate (0,0) is for chord c, but now the x coordinate is random so c may be made up of coordinates (0,5), which would be wrong.

The line from c to the other chords still uses the addends named (a+b) to give the coordinates value.
But one sum is different from another sum, even if both sums are true coordinates, the coordinates make a line and this line is represented by the sum .
Therefore there is three sums that need to exist for there to be positive and negative coordinates.
These three sums would then create two lines from coordinate (0,0).

If I use the order shown in 7, the three sums would be created in this order;
The first sum is (0,0)
The second sum is (-1,-1)
The third sum is (1,1)

Now I have coordinates that can represent not just a line, but first there needs to be a line as a starting point, so when the y coordinate changes it is really where it is supposed to be.

12.) Effectiveness

Now that there is a positive and negative line, the y coordinate is changed and everything works like poetry, but is it happy or sad poetry?

I read this article on the Internet and will now post it for you to read:

"The equation for the Theory of Everything (ToE) must leave no stone unturned and no possibilities for future contradictions. Great theories and equations have evolved and been broken over time and this will continue to happen as we as humankind push the boundaries of ultimate understanding.

Theory of Everything, in simple notation:

0 = 1 = ?

This equation was reached through philosophical analysis as opposed to mathematical analysis (which could be regarded as a top-down approach) and will no doubt receive much criticism from the scientific community. On first glance any mathematician can point out that the equation breaks the basic premise where the LHS must equal the RHS. I stand firm that despite appearances this rule is not broken by the equation.

Before elaborating on the fundamentals of the equation I wish to point out, my background is software development and this equation is the result of understanding the gap between human intelligence and artificial intelligence.

We are very much in the Digital Age of the Information Era, and as such, computers do our bidding with binary based systems and struggle to handle anything based on the Infinite. As we begin quantum computing we start to deal with the uncertainty principle and find we need methods to keep the binary system alive even if the form is not well suited.

Computers are still on the same level as calculators. There are superficial examples of artificial intelligence, but to my knowledge, not one machine or software instance has shown any capability of learning or understanding, and as far as I'm concerned, anything currently claiming to be AI is a parlor trick or simply a hard hack, and I would be glad to be shown otherwise.

In explaining the equation I will put forward an example:

I pick an apple from a tree. Its stem has a leaf and the stem is still attached. I hold the apple up in one hand and ask "Do I have an apple in my hand?" You would say yes assuming you're not insane or expecting a trick question. If I pull the stem out of the top of the apple and hand to you the tasty red fruit with the stem still in my hand I ask you, "Who now has the apple?"

There are at least 3 possible answers to this question:

1) you say that you have the apple

2) you say that I have the apple - even though I only hold the stem

3) you say we both have the apple

This is an example of fuzzy logic. If you think in the situation you would agree with answer number 1, would you still answer the same way if I, pulled out the stem, peeled the apple, keeping the skin, handed you the white ball of flesh and asked you "Who now has the apple?" If you still think number 1 is the correct answer then I ask you, "How much of the apple do I have to keep before you will change your mind"?

My point is there is no reality of where the apple ends and the rest of the world begins and that this phenomenon can only be described as the Infinite. Nothing is an island on its own. An apple is an abstract concept taught to us from a very young age when understanding anything about our Universe with our primitive senses is an amazing achievement. When I was 4, I didn't need to know the mechanics of time and space or the fact there's no such a thing as an apple except for the concept that exists in the human psyche and perhaps in the psyche of other living creatures.

Although the equation for the ToE has risen out of a side project relating to AI it none the less encompasses all of the physical Universe. 1 = 0 just as much as 1 = 1. There is no start and there is no end. The Digital Age will have to get over the idea of black and white, on and off, one and zero. If not, we will continue to see computer limits like Y2K, IPv4, Y2K38 throughout history and quantum computing will not realise it's true potential and mathematics will remain unimaginative."


13.) I have related this theory from 12, to how a 3D TV is supposed to work.

When 3D is shown is moves and when it moves it has smooth fluidity of movement, not jarring jerkiness. This is how 3D video is supposed to look to the human eye.

Now if there is a jarring, jerky video darting everywhere with rapid cuts scenes, it is not natural 3D to the human eye.

So for the theory from 12 to work, or be used I reasoned change from the coordinates would be incremental, so the original is relatable to the new version.
If the y is too far off it may not be part of the x coordinate that makes the original sum.

Also when the coordinates make shapes then perimeter and area, the shapes must fit within dimensions that are realistic, not unnatural.
So something fits the area and perimeter is relatable to it's surroundings.

Now if the y coordinate changes the poetry it makes is beautiful to see, not weird or spooky.

14.) So now the coordinates change now what, they represent sound as shapes.

If human language has sound it can be given a chord value in musical keys. And if human words chords are not made of equal addends that does not matter,
the words can be given shape value of the graph, and so numerical value.

Then the words can belong to a pattern. The pattern can match sentences to each other to see how the sentences shapes fit together.
Then the machine can mimic the shapes by outputting language, then through trial and error correction get a human vocabulary through pattern matching.

Then the pattern it gets and can talk about can be technical and so the AI be not only capable of speech but intellectual speech, on a human level since that is it's model.

The visual aspect of the graph can also be a pattern matcher, so the visual intelligence grows with the audible intelligence.

Now this ends my fourth explanation of what I am thinking of building and calling artificial intelligence, or AI.
If you choose to skip a part before understanding it then complain you don't understand the following parts, then that's your bad, not mine.
That’s Good enough.

Share this post

Link to post
Share on other sites
I need to break down the sw into stages though.

The first stage is steps 1-10 in my previous post; there is a graph with a straight line.

The second stage is steps 11-13 in my previous post; any audio input has a chord matching it so it has a coordinate also, and so shape can be built by stringing different coordinates created together.

The third stage is 14 from my previous post: pattern matching the sentence to a shape, then fitting it in with other sentences shapes. Something like a 'wooden assembly puzzle' where the pieces fit together to make a wood cube is what I'm thinking about when I say the sentences shapes fit each other.

Read 14 from my previous post if your confused as to what I am talking about.

Share this post

Link to post
Share on other sites
Perhaps this is better suited for a blog post, a journal entry, or a PhD thesis rather than on a public discussion forum? After all, we are all likely incapable of responding in a way that is comparable to your spectacular intelligence and insight. It also seems like this is some sort of work in progress for you. Maybe you can just share it with us when (if) it is completed (and coherent).

Another suggestion... there are some forums scattered around the internet about general AI. Perhaps your musings would be better received on those rather than a forum that is ostensibly about game AI?

Share this post

Link to post
Share on other sites
I could see a NN trained in music theory a good way to predict an upcoming chord based on an input or series of inputs, or match to known harmonies/melodies/etc, but I don't think it would build a song well. I say that because, if you have a series of rules, a basic rules engine should be able to build a song on basic music theory and therefore an NN is over complicating the solution. I could see an NN as useful if you're wanting it to "play along" with you, like if you're designing an AI that could play Jazz, because it would need to match the pattern of the flow of music with the other performers as its not a static melody, its dynamic in real-time. So the NN would locate the pattern based on the last few measures and then feed a weighted value to the rules engine to fabricate the next measure to stay in-sync with the band.

But then, I'm completely talking out of my ass on this, heh.

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement