My youngest is in college. My oldest is out of college. Today is the first day of my oldest working a "corporate" job. I hope the day was a good one. I did not pay for college for either of my children. I saved for them. When each child graduated from high school I turned over the savings. This money is all that had been gathered for their individual, continuing education.
I received a message from my oldest. The day had two and one half hours of meetings and beginning to learning the company's systems. I hope I have not lead my children a wrong path at the beginning of their lives, into debt right out of college and high school.
I asked that child to choose scripts based on the path that child wants to follow and not the simply accepting those scripts that society delivers, not blindly follow the sheep and the rest of the herd, to choose happiness and knowledge over debt.
42 Stars
My intent is to talk about what I know, what I've done, things that are interesting to me, and my travels.
Monday, September 10, 2012
Saturday, September 8, 2012
Traveling these few days
My goal for blogging is to add a new post each day. I've not met that yet. To complicate things I'm currently driving my youngest child to college, helping move in, etc. There are lots of things to do. We were able to get registered to the dorm last night, instead of today, so things are a bit ahead of schedule. I still plan to leave college and return to my home later this afternoon.
My vehicle is a 2006 Chevy Express 2500 (extended) cargo van. One of the tanks of fuel on the way to college averaged 18.7 MPG. I think that's pretty good for a 3/4 tonne van.
My vehicle is a 2006 Chevy Express 2500 (extended) cargo van. One of the tanks of fuel on the way to college averaged 18.7 MPG. I think that's pretty good for a 3/4 tonne van.
Tuesday, September 4, 2012
Common Phrases People Say
I think everyone has one or more "pet peeves". One of my pet peeves is the use of language. I mean the English language here. I don't know any other human languages. There are a few phrases that I don't like, phrases that either are semantically null, are derogation to the speaker, or have drifted their meaning over time (I prefer the original, non-drifted meaning).
Phrases I don't like include:
Phrases I don't like include:
- "no problem": If it was no problem for the speaker, then the speaker's actions have no worth.
- "talk to you tomorrow": I don't want to be talked "to". I want to be talked "with".
- "mad" (i.e. are you mad at me?): The original meaning of "mad" is "crazy". I am not mad at someone, though I may be angry at or with them.
Monday, September 3, 2012
Eating Frugally
At one time I lost a lot of weight. Around sixty pounds. Though I was doing a lot of bicycling at the time, I think a lot of my success was due to counting the calories I consumed, stopping consumption of sodas, and eating with a different pattern.
I began the habit of eating breakfast (two packets of instant oatmeal, 320 calories), eating mostly what I want for lunch and guessing its about 1000 calories, and eating nothing until the next breakfast. I try to have eighteen hours between "lunch" and "breakfast".
To keep up with hydration and hunger, I would drink water with just a little grape juice for flavor.
I've had a change of situation since then, including a surgery. I've gained forty pounds back. I plan for my situation to change in the summer of 2013. I'll get back to eating a way that I think is more healthy for me.
I'm also thinking about introducing "juicing" into my diet. This place seems to have good prices. I've watched some videos on YouTube! of juicing. The Omega 8006 seems the juicer for me. I also watched the film Fat, Sick, and Nearly Died. The idea seems very interesting.
Last night playing cards I had carrots. A good start. Today I had some Pringles. I suppose I'm back to the beginning again. :)
I plan on moving into my van. The juicer I'm looking at, the Omega 8006, requires 150 watts. This is low enough that a combination of solar panel and battery should be able to run the juicer several times each day. This idea, if I follow it, will provide me with many servings of fruits and vegetables every day. Maybe I can move to a vegetarian, or mostly, diet.
I began the habit of eating breakfast (two packets of instant oatmeal, 320 calories), eating mostly what I want for lunch and guessing its about 1000 calories, and eating nothing until the next breakfast. I try to have eighteen hours between "lunch" and "breakfast".
To keep up with hydration and hunger, I would drink water with just a little grape juice for flavor.
I've had a change of situation since then, including a surgery. I've gained forty pounds back. I plan for my situation to change in the summer of 2013. I'll get back to eating a way that I think is more healthy for me.
I'm also thinking about introducing "juicing" into my diet. This place seems to have good prices. I've watched some videos on YouTube! of juicing. The Omega 8006 seems the juicer for me. I also watched the film Fat, Sick, and Nearly Died. The idea seems very interesting.
Last night playing cards I had carrots. A good start. Today I had some Pringles. I suppose I'm back to the beginning again. :)
I plan on moving into my van. The juicer I'm looking at, the Omega 8006, requires 150 watts. This is low enough that a combination of solar panel and battery should be able to run the juicer several times each day. This idea, if I follow it, will provide me with many servings of fruits and vegetables every day. Maybe I can move to a vegetarian, or mostly, diet.
Saturday, September 1, 2012
Genetic Programming Ideas
I am fascinated by what I think can be accomplished using genetic programming techniques. One of the areas that intrigues me is the idea of creating a semantic database, a database of words and words combined into phrases. Each word and phrase would be rated a semantic value. This value would be subjective. I don't know any object way a semantic value could be assigned.
Anyway, once past that hurdle, create an objective function that knows how to string words into sentences, paragraphs, and speeches. Devise a function whose inputs are I want a speech that has these values:
patriotism: 83
sacrifice: 79
some other country: -100
economy: 50
some profession: -20
Anyway, once past that hurdle, create an objective function that knows how to string words into sentences, paragraphs, and speeches. Devise a function whose inputs are I want a speech that has these values:
patriotism: 83
sacrifice: 79
some other country: -100
economy: 50
some profession: -20
- The positive values are good.
- The negative values are bad.
- This system is an automated speech writer.
- This system could be extended to harvest current news items from places like CNN.
- This system could be designed to watch news stories, increasing their emotional impact as more stories are harvested, and to decay that emotional impact over time.
- This system could include emotional current stories like hurricanes, earthquakes, mass shootings, or other emotional content.
- The database could have custom news stories or phrases manually entered to make sure they are available to the objective function, possibly with a custom semantic value to make sure the item is injected into the speech.
Friday, August 31, 2012
Genetic Programming Details - Part 3
After a run through the population evaluating each individual the adjusted fitness is used to create the next population. A common approach is to sort the population by fitness size, copy over the top ten percent of the population to the new population (the hundred highest scoring individuals in a population of 1000), then generate the remaining population (900 if the population is 1000) using a tournament method. In the tournament five (or seven or some small number) of individuals is chosen at random. Based on the relative fitness of the individual, that individual is more likely to win the tournament. Using whole numbers, if the five individuals had fitness values of 2, 4, 6, 8 10, the sum of these fitness scores is 30, the individual with a fitness score of 10 has a 10 / 30 or 1/3 chance of winning the tournament.
Once you have a tournament winner, generate a random number to see if that individual will be crossed with another individual (also selected by tournament), mutated, or left unchanged.
Fill the remaining population this way (900 individuals in this example). When the population is complete take another run through the population evaluating the fitness of each individual. Repeat these steps until the maximum number of generations is reached or a "perfect" individual is found.
Once you have a tournament winner, generate a random number to see if that individual will be crossed with another individual (also selected by tournament), mutated, or left unchanged.
Fill the remaining population this way (900 individuals in this example). When the population is complete take another run through the population evaluating the fitness of each individual. Repeat these steps until the maximum number of generations is reached or a "perfect" individual is found.
Thursday, August 30, 2012
Genetic Programming Details - Part 2
The genetic programming system is created by first deciding what terminal values and what operators you will use given your problem. Next write the objective function. The objective function accepts an individual then evaluates that individual over your data set. This data set could be internal, trying to find an individual that returns the closest approximation to the square root of two, or your data set could be external.
If the data set is external, like planetary orbital locations, your objective function reads the data and evaluates the data with respect to the data set. When evaluating the individual your objective function must compute some number that shows the relative "goodness" or "badness" of this individual with respect to the data function. With the square root of two problem this value might be the absolute difference between the evaluated result of the individual with the fixed value of square root of two (1.414). For a problem like planetary orbital data this value could be the absolute difference of each evaluation of the individual and the observed position.
Depending on the magnitude of the values you're working with, somethings this difference is squared to make the summed difference between individuals greater and the "rightness" of the individual more pronounced with respect to other individuals in the population.
Once the objective function is written, then you decide with what frequency you want crossover and mutation to happen within your population. Crossover percentages are normally high, around 70%. I don't have a citation for that number at the moment. Mutation percentages are low, around 3%.
A genetic programming sequence of events when running is:
For a given problem, how do you know what is the perfect score? Researcher and author John Koza proposed that the objective function in some way sum up the individual's score into what is called the "raw score". This raw score is then converted into a value where one (1) is perfect and zero bad. The formula used is: adjusted score = 1 / (1 + raw score). In this framework the raw score approaches zero as the fitness of the individual increases. If the individual is perfect and has a raw score of zero the equation is: adjusted score = 1 / (1 + 0), = 1 / 1 = 1. That's great. If the individual has a bad fit and a large raw score the equation is more like: adjusted score = 1 / (1 + big number) = 1 / big number = tiny number.
I think John Koza's idea for adjusted scores is really useful.
If the data set is external, like planetary orbital locations, your objective function reads the data and evaluates the data with respect to the data set. When evaluating the individual your objective function must compute some number that shows the relative "goodness" or "badness" of this individual with respect to the data function. With the square root of two problem this value might be the absolute difference between the evaluated result of the individual with the fixed value of square root of two (1.414). For a problem like planetary orbital data this value could be the absolute difference of each evaluation of the individual and the observed position.
Depending on the magnitude of the values you're working with, somethings this difference is squared to make the summed difference between individuals greater and the "rightness" of the individual more pronounced with respect to other individuals in the population.
Once the objective function is written, then you decide with what frequency you want crossover and mutation to happen within your population. Crossover percentages are normally high, around 70%. I don't have a citation for that number at the moment. Mutation percentages are low, around 3%.
A genetic programming sequence of events when running is:
- randomize the individuals of a population given the sets of terminal values and operators
- evaluate every individual using the objective function
- sort the "correctness" of each individual
- randomly go through the population deciding which individuals will have crossover and which individuals will be mutated
- repeat the above steps until either the maximum number of generations of the population is reached or until an individual is found for which the objective function returns a perfect score
For a given problem, how do you know what is the perfect score? Researcher and author John Koza proposed that the objective function in some way sum up the individual's score into what is called the "raw score". This raw score is then converted into a value where one (1) is perfect and zero bad. The formula used is: adjusted score = 1 / (1 + raw score). In this framework the raw score approaches zero as the fitness of the individual increases. If the individual is perfect and has a raw score of zero the equation is: adjusted score = 1 / (1 + 0), = 1 / 1 = 1. That's great. If the individual has a bad fit and a large raw score the equation is more like: adjusted score = 1 / (1 + big number) = 1 / big number = tiny number.
I think John Koza's idea for adjusted scores is really useful.
Subscribe to:
Comments (Atom)