text:
Inside Survival
Walther P99 Review
Inside Survival | March 24, 2021 February 4, 2021 | Guns & Ammo
Arguably the most underrated service pistol in today's firearms market is the Walther P99 series of pistols.
Reliable, ergonomic, and equipped with a trigger system that remains revolutionary even to this very day, the Walther P99 still strangely remains highly overlooked on the American firearms market. However, it has been trusted by law enforcement and the military.
Walther has begun to gain a larger foothold on the American market with the PPQ (another excellent pistol). But the reality is that the PPQ is nothing more than a slightly modified P99 pistol to begin with. The P99 is where it all began, and in my opinion, is the more interesting pistol.
In this guide, we'll very briefly cover the history of the Walther P99. Then we'll dive into my personal experiences with this weapon and the primary features that make it worth owning.
Brief History of the Walther P99
The Walther P99's Trigger System Explained
Why I've Settled on the P99
Pros and Cons of the Walther P99
The Walther P99 was developed in the mid-1990s as a successor to Walther's P5 and P88 series of handguns. While well-made in their functionality and eloquent in their appearance, the P5 and P88 were both showing their age when Glock was ushering in the era of the polymer framed, striker fired pistol.
After a few years of development and prototyping, Walther finally unveiled the Walther P99 pistol in 1996. The P99 was adopted as the service pistol for many European police departments and militaries. It had notably less success in the American market, at least until the release of the PPQ in 2011 (a modified P99 with a simplified trigger).
The P99 was designed to primarily compete with the Glock. But it has one major difference that continues to set it apart from Glock and other striker fired pistols more than a quarter century after its initial release.
The standout feature of the P99, and the reason to consider it over other striker fired pistols on the marketplace, is its trigger system.
What Makes the P99's Trigger Unique?
The Walther P99 pistol is a striker fired pistol, but it operates using a double action single action (DA/SA) trigger mechanism. This mechanism is usually reserved for hammer fired pistols only, such as the Beretta 92FS, SIG Sauer P226, or the Heckler & Koch USP.
The first shot is long and heavy, the gun cycles, and all subsequent trigger pulls are much shorter and lighter either until the gun is emptied or decocked.
In contrast, striker fired pistols (such as the Glock or the Smith & Wesson M&P) use a consistent trigger pull with each shot, as if they were a double action only or a single action only.
The P99, however, indeed uses a double action single action trigger much like a Beretta 92 or SIG 226. The first shot is long and heavy, the gun cycles after being fired, and all subsequent rounds are much shorter and lighter.
When the gun is cocked, you will hear an audible click and a red indicator appears on the back of the slide.
To put the weapon back into double action, you simply have to press the decoking button located on the top left part of the slide. You will hear another audible click, but this time the red indicator disappears.
The AS Mode
But what truly makes the P99's trigger system so marvelous and revolutionary is because of a third trigger mode it sports: the AS mode.
On a traditional hammer fired handgun, if you want your first shot to be short and light, all you have to do is manually pull back the hammer.
But there is no such hammer on the P99 pistol to pull back.
So what do you do if you want your first shot to be short and light?
This is where the AS mode will prove its worth to you. With your P99 in double action, pull the slide back slightly (but not so far that you eject a round) until you hear another audible click. The red indicator should appear on the back of the slide as well. But the trigger should remain in the original double action position.
The weapon is now in the AS mode. Even though the trigger is in the double action position, it is much lighter to pull back so you will have an easier time shooting the pistol accurately.
The AS mode is the preferable trigger position for carrying the Walther P99. The single action trigger, being very short and light, is simply too unsafe to carry around. The double action mode, while much safer, is also heavy and not as desirable for your first shot.
Keep in mind, in a defensive scenario where you may have to access and draw your P99 to shoot quickly, squeezing off a long and heavy trigger pull is more than doable but just not as easy as single action. Yes, it is something you can master by practicing on the range.
The AS mode, with a lighter trigger pull in the double action position, makes your P99 safer to carry than in single action and easier to shoot for your first shot than in double action. It really is an ingenious feature, and something that has not been replicated in other striker fired pistol designs that I can think of to this day.
To put the gun back into double action, repeat the same process as if the gun were in single action, and simply push down on the decocker lever on the slide.
My Thoughts on the P99's Trigger
I admit that when I first learned about how the P99's trigger worked, I thought it was a bit convoluted. It's actually for this reason that I purchased a PPQ (with its more simple and traditional trigger system) first.
The PPQ, for reference, is simply a P99 pistol with Glock-like single action only trigger. It also has a few other modifications, such as more aggressive grip texturing and forward serrations on the slide, but the trigger is by far the biggest difference.
I carried the PPQ as my standard self-defensive pistol for over four years, but the Walther P99 never left my mind. When I finally went back and purchased one, I trained with it extensively on the range and practiced with the trigger extensively.
As a result, the P99's trigger system has become second nature to me, and I actually prefer it over that of the PPQ today.
The Walther P99, in both its full size and compact variations, has become my choice of pistol for concealed carry. A full size P99 is roughly in-between the sizes of a Glock 19 and a Glock 17 for reference.
It's not a small pistol, but I can more than adequately conceal it in my Galco Summer Comfort IWB holster in most cases. For days where I need to rely on optimal concealment, I can resort to my smaller P99 Compact.
My full size P99 is a third generation model in 9x19mm Luger. The third gen has been around since 2005, and is notable for its rounded off trigger guard, Picatinny rail for adding lights or lasers, and the extended ambidextrous paddle magazine release to facilitate faster reloads.
It carries either 15 or 16 rounds depending on the magazine. Older P99 magazines carried 16 rounds, while the new magazines hold 15 rounds. Why Walther chose to lower the magazine size by one round, I admittedly have no idea.
My P99 Compact is literally just a smaller version of my full size P99. It features a 10 round magazine with an extended base plate to rest your pinky finger. It also accepts the full size magazines, so I can carry a larger mag for a spare.
Few pistols are as ergonomic to me as the Walther P99. My first ever handgun was the PPQ, which has the same grip shape as the P99. One of the main reasons I selected it was because it was one of the most comfortable guns I've ever held. The P99's grip is like the PPQ, only with slightly less aggressive texturing.
I've also found the P99 series of pistols to be incredibly reliable. I've put thousands of rounds downrange with my P99, P99 Compact, and PPQ. Never have I encountered a malfunction of any sort with good ammunition or that wasn't user induced.
This is believable when you consider the incredible torture tests that Walther subjected the P99 to before it was released. Thousands of rounds were fired out of Walther P99 pistols, which were also exposed to mud, sand, ice, and extreme temperatures, and continued to work.
Walther even stuck a bullet down the muzzle and shot it out without any damage to the pistol. This is a feat I've only heard of being replicated by the Glock and the Heckler & Koch USP.
Here are the pros and cons of the Walther P99 pistol, in my personal opinion:
Very ergonomic
The striker fired DA/SA remains state-of-the-art to this day
European-style paddle magazine release is ambidextrous
Medium-size makes it suitable as both a duty gun or as a concealed carry weapon
Not the best choice if you dislike the DA/SA trigger
Not as much aftermarket parts or support
The Walther P99 pistolis one of my favorite pistols for more reasons than one. The gun melts in my hand, I've never had a jam. And I find the trigger system just as useful as it is unique.
I've also found that the Walther P99 excels as a home defense gun, a concealed carry pistol, or as a range piece. It's a good gun and it's proven itself well over the last twenty five years. It's well past time that this pistol received a new look from American shooters today.
Best Gun Safe Humidifiers [2022 Guide]
Winchester Model 70 in .270 Review
The Best 6.5 Grendel Barrels
Best Ruger 10/22 Barrels
The 5 Best SD9VE Sights
Glock 20 10mm Review
PrevPreviousHow to Make Your Bug Out Plan
NextWhat is the Best Survival Knife for Chopping Wood?Next
There are few greater gifts I have received than my grandfather's old pre-64 Winchester Model 70 in .270. When my
If you are currently looking for 6.5 Grendel barrels for your AR-15, keep reading. The 6.5 Grendel is one of
Are you currently looking for the best 10/22 barrel? If so, you've come to the right place. The 10/22 is
One of the most popular budget handguns for self-defense and concealed carry is the Smith and Wesson SD9VE. While the
Are you considering purchasing a Glock 20 in 10mm Auto? If so, you've come to the right place. There are
The Best .458 SOCOM Magazines
One of the most important accessories that you can have for any firearm is a high quality magazine. If you
Creating your Survival Seed Vault
If you're serious about prepping, you need to look into a survival seed vault. A survival seed vault is a
What is a Ferro Rod Made Of?
A ferro rod is made of a combination of metals containing iron, praseodymium, neodymium, magnesium, lanthanum, and a rare earth called
Humidity control in gun safes is essential. Especially if you live in areas where there is high humidity. It may
Crypto for Preppers: Is it worth the hype?
There's pretty much no way that you haven't heard about cryptocurrency. It's difficult to avoid crypto when it's been covered
The Best Calorie Crops for Your Survival Garden
If you're already growing a survival garden, good for you! You are miles ahead when it comes to long-term survival.
Best Survival Watches for Preppers
Watches are one of the essentials that you need to have on your wrist all the time, but if you
About Inside Survival
Copyright © 2020 Inside Survival. This copyrighted material may not be republished without express permission. The information presented here is for general educational purposes only. MATERIAL CONNECTION DISCLOSURE: You should assume that this website has an affiliate relationship and/or another material connection to the persons or businesses mentioned in or linked to from this page and may receive commissions from purchases you make on subsequent web sites. You should not rely solely on information contained in this website to evaluate the product or service being endorsed. Always exercise due diligence before purchasing any product or service. This website contains advertisements.
Address: 5745 S Fort Apache Rd Suite 130, Las Vegas, NV 89148
Tel: (702) 381-2577


text:
\section{Introduction}
Many of the generative models, for example, generative adversarial networks (GANs) \citep{goodfellow2014generative, arjovsky2017wasserstein, salimans2018improving} and flow-based models including normalizing flows \citep{rezende2015variational, kingma2018glow, chen2018neural}, aim to find a generator that could map the input distribution to the target distribution.

In many cases, especially when the input distribution is purely noises, the specific maps between  input and output are of little importance as long as the generated distributions match the target ones. However, in other cases like image-to-image translations, where both input and target distributions are distributions of images, the generators are required to have additional regularity such that the input individuals are mapped to the ``corresponding'' outputs in some sense. If paired input-output samples are provided, $L_p$ penalty could be hybridized into generators loss functions to encourage the output individuals fit the ground truth \citep{isola2017image}. For the cases without paired data, a popular approach is to introduce another generator and encourage the two generators to be the inverse maps of each other, as in CycleGANs \citep{zhu2017unpaired}, DualGANs \citep{yi2017dualgan} and DiscoGANs \citep{kim2017learning}, etc. However, such a pair of generators is not unique and lacks clear mathematical interpretation about its effectiveness.

\begin{figure}[ht]
     \centering
         \includegraphics[width=0.5\textwidth]{./SchematicPlots/Schematic.png}
    \caption{Schematic of generator without and with $L_2$ optimal transport regularity. While both generators provide a scheme to map from the input distribution (purple) to the output distribution (orange), the total squared transport distances in the left generator is much larger than that in the right generator.}
 \label{fig:IntroSchematic}
\end{figure}

In this paper we introduce a special generator, i.e., the potential flow generator, with $L_2$ optimal transport regularity. It is not only a map from the input distribution to the target distribution, but also the {\em optimal transport map} with squared $L_2$ distance as transport cost. In Fig.~\ref{fig:IntroSchematic} we provide a schematic comparison between generators with and without optimal transport regularity. Note that the generator with optimal transport regularity has the characteristic of ``proximity''in that the inputs tend to be mapped to nearby outputs. As we will show later, this ``proximity'' characteristic of $L_2$ optimal transport regularity could be utilized in image translation tasks. Compared with other approaches like CycleGANs, the $L_2$ optimal transport regularity has a much clearer mathematical interpretation.

There have been other approaches to learn the optimal transport map in generative models.
For example, \cite{seguy2017large} proposed to first learn the regularized optimal transport plan and then the optimal transport map, based on the dual form of regularized optimal transport problem. Also, \cite{yang2018scalable} proposed to learn the unbalanced optimal transport plan in an adversarial way derived from a convex conjugate representation of divergences. In the W2GAN model proposed by \cite{leygonie2019adversarial}, the discriminator's objective is the 2-Wasserstein metric so that the generator is the $L_2$ optimal transport map. All the above approaches need to introduce, and are limited to, specific loss functions to train the generators. Our proposed potential flow generator takes a different approach in that with up to a slight augmentation of the original generator loss functions, our potential flow generator could be integrated into to a wide range of generative models with various generator loss functions, including different versions of GANs and flow-based models. This simple modification makes our method easy to adopt
on various tasks considering the existing rich literature and the future developments of generative models.

Our main contributions are the following:
\begin{enumerate}
    \item We propose a potential flow generator with $L_2$ optimal transport regularity for a wide range of generative models. Two different versions are proposed: the discrete version and the continuous version.
    \item We compare the two versions and verify the correctness and robustness of the continuous potential flow generator by comparing it with analytical $L_2$ optimal transport maps. We also show the effectiveness of our methods in different generative models for more complicated distributions.
    \item We show the effectiveness of our generator with $L_2$ optimal transport regularity in image translation tasks with unpaired training data.
\end{enumerate}

In Section \ref{sec:GM_and_OTM} we give a formal definition of optimal transport map and the motivation to apply $L_2$ optimal transport regularity to generators. In Section \ref{sec:PFG} we give a detailed formulation of potential flow generator and the augmentation to the original loss functions. Results are  then provided in Section \ref{sec:results}. We include a discussion and conclusion in Section \ref{sec:conclu}.

\section{Generative Models and Optimal Transport Map}\label{sec:GM_and_OTM}

First, we introduce the concept of \textit{push forward}, which will be used extensively in the paper.
\begin{definition}
Given two Polish space $X$ and $Y$, $B(X)$ and $B(Y)$ the Borel $\sigma$-algebra on $X$ and $Y$, and $\mathcal{P}(X),\mathcal{P}(Y)$ the set of probability measures on $B(X)$ and $B(Y)$. Let $f: X \rightarrow Y$ be a Borel map, and $\mu \in \mathcal{P}(X)$. We define $f_\#\mu \in \mathcal{P}(Y)$, the push forward of $\mu$ through $f$, by
\begin{equation}
    f_\#\mu(E) = \mu(f^{-1}(E)), \forall E \in B(Y).
\end{equation}
\end{definition}

With the concept of push forward, we can formulate the goal of GANs and and flow-based models as to train the generator $G$ such that $G_{\#}\mu$ is equal to or at least close to $\nu$ in some sense, where $\mu$ and $\nu$ are the input and target distribution, respectively. Usually, the loss functions for training the generators are metrics of closeness that vary for different models. For example, in continuous normalizing flows \citep{chen2018neural}, such metric of closeness is $\text{KL}(G_{\#}\mu||\nu)$ or $\text{KL}(\nu||G_{\#}\mu)$. In Wasserstein GANs (WGANs) \citep{arjovsky2017wasserstein}, the metric of closeness is the Wasserstein-1 distance between $G_{\#}\mu$ and $\nu$, which is estimated in a variational form with discriminator neural networks. As a result, the generator and discriminator neural networks are trained in an adversarial way:
\begin{equation}\label{eqn:GAN}
   \min_{G}\max_{D\text{ is 1-Lipschitz}}
                  \mathbb{E}_{x\sim \nu}D(x) - \mathbb{E}_{z\sim \mu}D(G(z)),
\end{equation}
where $D$ is the discriminator neural network and the Lipschitz constraint could be imposed via the gradient penalty \citep{gulrajani2017improved}, spectral normalization \citep{miyato2018spectral}, etc.

Now we can introduce the concept of Monge's optimal transport problem and the optimal transport map as following:

\begin{definition}
Given a cost function $c: X\times Y \rightarrow \mathbb{R}$, and $\mu \in \mathcal{P}(X)$, $\nu \in \mathcal{P}(Y)$, we let $T$ be the set of all transport maps from $\mu$ to $\nu$, i.e. $T := \{f:f_\#\mu = \nu\}$. Monge's optimal transport problem is to minimize the cost functional $C(f)$ among $T$, where
\begin{equation}
    C(f) = \mathbb{E}_{x\sim \mu} c(x, f(x))
\end{equation}
and the minimizer $f^* \in T$ is called the optimal transport map.
\end{definition}

In this paper, we are concerned mostly  about the case where $X = Y =\mathbb{R}^d$ with $L_2$ transport cost, i.e., the transport $c(x, y) = \Vert x - y\Vert_{2}^2$. Also, we assume that $\mu$ and $\nu$ are absolute continuous w.r.t. Lebesgue measure, i.e. they have probability density functions. Such problem is important for the following reasons:

\begin{enumerate}
    \item In general, Monge's problem could be ill-posed in that $T$ could be empty set or there is no minimizer in $T$. Moreover, the optimal transport map could be non-unique, for example, if transport cost $c(x,y) = \Vert x - y\Vert_{1}$. However, for the special case we consider, there exists a unique solution to  Monge's problem.

    \item Informally speaking, with $L_2$ transport cost the optimal transport map has the characteristic of ``proximity'', i.e. the inputs tend to be mapped to nearby outputs. In image translation tasks, such ``proximity'' characteristic would be helpful if we could properly embed the images into Euclidean space such that our preferred input-output pairs are close to each other.

    \item Apart from image translations, the optimal transport problem with $L_2$ transport cost is important in many other aspects. For example, it is closely related to gradient flow \citep{ambrosio2008gradient}, Fokker-Planck equations \citep{santambrogio2017euclidean}, porous medium flow \citep{otto1997viscous}, etc.
\end{enumerate}

\section{Potential Flow Generator}\label{sec:PFG}

\subsection{Potential Flow Formulation of Optimal Transport Map}

One of the most important results for the case we are studying is that the optimal map is of the form $f(x) = \nabla \Phi(x)$, where the so-called Brenier potential $\Phi(x)$ is convex and lower semi-continuous.
We refer the readers to \cite{gangbo1996geometry} and \cite{mccann2011five} for the details. Note that the convexity constraint for $\Phi$ is essential for optimality. Here is an example of non-convex $\Phi$ leading to sub-optimal transport map: let $\mu$ and $\nu$ both be uniform distribution on $[0,1]$, then the identical map which has zero cost is the optimal map, while we can construct a non-convex $\Phi(x) = x-\frac{1}{2}x^2$ which leads to the sub-optimal transport map $f(x) = 1-x$.

In the context of generative models, it looks plausible to represent the Brenier potential $\Phi(x)$ with a neural network and induce the generator from the gradient. However, the constraint of convexity is not trivial for neural networks. Therefore, we turned to another characterization of optimal transport map, i.e., the potential flow formulation which was firstly proposed by \cite{benamou2000computational}: suppose both $\mu$ and $\nu$ admit probability density $\rho_{\mu}$ and $\rho_{\nu}$, and consider all smooth enough density field $\rho(t,x)$ and velocity field $v(t,x)$, where $t \in [0,T]$, subject to the continuity equation as well as initial and final conditions
\begin{equation}\label{eqn:continuity}
\begin{aligned}
    \partial_t \rho + \nabla & \cdot (\rho v) = 0, \\
    \rho(0, \cdot) = \rho_{\mu} &, \quad \rho(T, \cdot) = \rho_{\nu}.
\end{aligned}
\end{equation}
The above equation actually says that such velocity field will induce a transport map: we can construct an ordinary differential equation (ODE)
\begin{equation}\label{eqn:ODE}
    \frac{du}{dt} = v(t, u),
\end{equation}
and the map between initial point to final point gives the transport map from $\mu$ to $\nu$.

As is proposed by \cite{benamou2000computational}, for the transport cost function $c(x,y) = ||x-y||^2$, the minimal transport cost is equal to the infimum of
\begin{equation}\label{eqn:W2distance}
    T\int_{\mathbb{R}^d}\int_{0}^T\rho(t,x)|v(t,x)|^2dxdt
\end{equation}
among all $(\rho, v)$ satisfying equation (\ref{eqn:continuity}). The optimality condition is given by
\begin{equation}\label{eqn:potential}
\begin{aligned}
    v(t,x) = \nabla \phi (t,x) \\
    \partial_t \phi + \frac{1}{2} |\nabla \phi |^2 = 0.
\end{aligned}
\end{equation}
In other words, the optimal velocity field is actually induced from a flow with time-dependent potential $\phi(t,x)$.

Note that different from the Brenier potential formulation, there is no explicit requirement for convexity in the potential flow formulation. This helps us to apply this formulation to design our generators with $L_2$ optimal transport regularity.

\subsection{Potential Flow Generator}
The potential $\phi(t,x)$ is the key function to estimate, since the velocity field could be obtained by taking the gradient of the potential and consequently the transport map could be obtained from the ODE Eqn.~\ref{eqn:ODE}. There are two strategies to use neural networks to represent $\phi$.
\begin{enumerate}
    \item One can take advantage of the fact that the time-dependent potential field $\phi$ is actually uniquely determined by its initial condition from Eqn.~\ref{eqn:potential}, and use a neural network to represent  the initial condition of $\phi$, i.e. $\phi(0,x)$, while approximating $\phi(t,x)$ via time discretization schemes.
    \item Alternatively, one can use a neural network to represent $\phi(t,x)$ directly and later apply the PDE regularity for $\phi(t,x)$ in Eqn.~\ref{eqn:potential}.
\end{enumerate}

We name the generators defined in the above two approaches as {\em discrete} potential flow generator and {\em continuous} potential flow generator, respectively, and give a detailed formulation as follows.

\subsubsection{Discrete Potential Flow Generator}
In the discrete potential flow generator, we use the neural network $\tilde{\phi}_{0}(x): \mathbb{R}^d \rightarrow \mathbb{R}$ with parameter $\theta$ to represent the initial condition of $\phi(t,x)$, i.e. $\phi(0,x)$. The potential field $\phi(t, x)$ as well as the velocity field $v(t,x)$ could then be approximated by different time discretization schemes, e.g. Eular schemes, Runge-Kutta schemes, etc. As an example, here we use the first-order forward Eular scheme for the simplicity of implementation. To be specific, suppose the time discretization step is $\Delta t$ and the number of total steps is $n$ with $n\Delta t= T$, then for $i = 0,1...n$, $\phi(i\Delta t,x)$ could be represented by $\tilde{\phi}_i(x)$, where
\begin{equation} \label{eqn:phi}
    \begin{aligned}
        \tilde{\phi}_{i+1}(x) = \tilde{\phi}_i(x) -& \frac{\Delta t}{2}|\nabla \tilde{\phi}_i(x) |^2 , \quad \text{for $i = 0,1,2...,n-1$}.
    \end{aligned}
\end{equation}
Consequently, the velocity field $v(i\Delta t,x)$ could be represented by $\tilde{v}_i(x)$, where
\begin{equation} \label{eqn:v}
    \tilde{v}_i(x) = \nabla \tilde{\phi}_i(x), \quad \text{for $i = 0,1...n$}
\end{equation}
Finally, we can build the transport map from Eqs. \ref{eqn:ODE}:
\begin{equation} \label{eqn:f}
\begin{aligned}
    &\tilde{f}_0(x) = x\\
    \tilde{f}_{i+1}(x) = \tilde{f}_i(x) + &\Delta t \tilde{v}_i(\tilde{f}_i(x)), \quad \text{for $i = 0,1,2...n-1$}
\end{aligned}
\end{equation}
with $G(\cdot) = \tilde{f}_n(\cdot)$ be our transport map. The gradient w.r.t. $x$ in Eqns. \ref{eqn:phi}, \ref{eqn:v}, \ref{eqn:f} are realized by automatic differentiation.

The discrete potential flow generator has built-in optimal transport regularity since the optimal condition (Eqn.~\ref{eqn:potential}) is encoded in the time discretization (Eqn.~\ref{eqn:phi}). However, such discretization also introduces nested gradients,  which dramatically increases computational cost when the number of total steps $n$ is increased. In our examples, we set $T = 1$ and $n = 4$.

\subsubsection{Continuous Potential Flow Generator}
In the continuous potential flow generator, we use the neural network $\tilde{\phi}(t, x): \mathbb{R}^{d+1} \rightarrow \mathbb{R}$ with parameters $\theta$ to represent $\phi(t,x)$. Consequently, we can represent the velocity field $v(t,x)$ by $\tilde{v}(t, x)$, where
\begin{equation} \label{eqn:cv}
    \tilde{v}(t,x) = \nabla \tilde{\phi}(t, x).
\end{equation}
With the velocity field we could estimate the transport map by solving the ODE (Eqn.~\ref{eqn:ODE}) using any numerical ODE solver. As an example, we can use the first-order  forward Eular scheme, i.e.
\begin{equation} \label{eqn:cf}
\begin{aligned}
    &\tilde{f}(0,x) = x\\
    \tilde{f}((i+1)\Delta t,x) = \tilde{f}(i\Delta t, x) + &\Delta t \tilde{v}(i \Delta t,\tilde{f}(i\Delta t, x)), \text{for $i = 0,1,2...n-1$}
\end{aligned}
\end{equation}
with $G(\cdot) = \tilde{f}(T ,\cdot)$ be our transport map, where $\Delta t$ is the time discretization step and $n$ is the number of total steps with $n\Delta t= T$.

In the continuous potential flow generator, increasing the number of total steps would not introduce high order differentiations, therefore we could have very small time steps for a better precision of ODE solver. In practice, we set $T =1 $, $n =10$ in image translation tasks and $n=100$ elsewhere for continuous potential flow generators. Different from the discrete potential flow generator, the optimal condition (Eqn.~\ref{eqn:potential}) is not encoded in the continuous potential flow generator, therefore we need to penalize  Eqn.~\ref{eqn:potential} in the loss function, as we will discuss in the next subsection.

One may come up with another strategy of imposing the $L_2$ optimal transport regularity: to use a vanilla generator, which is a neural network directly mapping from inputs to outputs, and penalize  the $L_2$ transport cost, i.e., the loss function is
\begin{equation}\label{eqn:Regloss}
L_{vanilla} = L_{original} + \alpha \mathbb{E}_{x\sim \mu}\Vert G(x)-x \Vert^2,
\end{equation}
where $L_{original}$ is the original loss function for the generator, and $\alpha$ is the weight for the transport penalty. We emphasize that such strategy is much inferior to penalizing the PDE (Eqn.~\ref{eqn:potential}) in the continuous potential flow generator. When training the vanilla generator with $L_2$ transport penalty, no matter how we weight the $L_2$ transport cost penalty, in principle we always have to make a trade off between ``matching the generated distribution with the target one'' and ``reducing the transport cost'' since there is always a conflict between them, and consequently $G_{\#}\mu$ will be biased towards $\mu$. On the other hand, there is no conflict between matching the distributions and penalizing  Eqn.~\ref{eqn:potential} in the continuous potential flow generator. As a consequence, the continuous potential flow generator is robust with respect to different weights for the PDE penalty. We will show this in Section \ref{sec:results}.

\subsection{Training the Potential Flow Generator}

While the optimal condition (Eqn.~\ref{eqn:potential}) has been considered in the above two generators, the constraints of initial and final conditions are so far neglected. Actually, the constraint of initial and final conditions gives the principle to train the neural network: we need to tune the parameter $\theta$ in the neural network so that $G _\# \mu$ matches $\nu$. This could be done by GANs or flow-based models.

\subsubsection{Loss in GAN models}
In the cases where the available data are samples from $\mu$ and $\nu$, we could apply GAN models to train the potential flow generator. In particular, we replace the generator in GANs with the potential flow generator $G$, feed samples from $\mu$ into $G$, and view the outputs as ``fake data'' of $\nu$. Both the discrete and continuous potential flow generator could be applied to such cases.

For the discrete potential flow generator, since the optimal transport regularity is already built in, the loss for training $G$ is simply the GAN loss for the  generator, i.e.
\begin{equation} \label{eqn:dloss}
\begin{aligned}
    L_{dPFG} = L_{GAN},
\end{aligned}
\end{equation}
where $L_{GAN}$ actually depends on the specific version of GANs. For example, if we use WGANs with gradient pernalty, then
\begin{equation} \label{eqn:WGANloss}
\begin{aligned}
    L_{GAN} = -\mathbb{E}_{z\sim \mu}D(G(z),
\end{aligned}
\end{equation}
where $D$ is the discriminator neural network.

For the continuous potential flow generator, as mentioned above, we also need to penalize the PDE (Eqn.~\ref{eqn:potential}) for the optimal transport regularity. Inspired by the applications of neural networks in solving forward and backward problems of PDEs, as in PINNs \citep{raissi2017physics1, raissi2017physics2}, we penalize  the squared residual of the PDE on the so-called ``residual" points. In particular, the loss for continuous potential flow generator would be
\begin{equation} \label{eqn:closs}
\begin{aligned}
    L_{cPFG} = L_{GAN} + \lambda \frac{1}{N}\sum_{i=1}^N[\partial_t \tilde{\phi}(t_i,x_i) + \frac{1}{2}|\nabla \tilde{\phi}(t_i, x_i)|^2] ^2,
\end{aligned}
\end{equation}
where $\{(t_i, x_i)\}_{i=1}^N$ are the residual points for the estimating the residual of PDE (Eqn.~\ref{eqn:potential}), and $\lambda$ is the weight for the PDE penalty. While there could be other strategies to select the residual points, here we set them as the points on ``trajectories'' of input samples, i.e.

\begin{equation} \label{eqn:coll}
\begin{aligned}
    \{(t_i, x_i)\}_{i=1}^N = \bigcup_{i=0}^n \bigcup_{x_j \in B} \{( i\Delta t,\tilde{f}(i\Delta t,x_j))\},
\end{aligned}
\end{equation}
where $B$ is the set of batch samples from $\mu$. Note that the coordinates of the residual points involves $\tilde{f}$, but this should not be taken into consideration when calculating the gradient of loss function w.r.t. the generator parameters.

\subsubsection{Loss in flow-based models}
In the cases where we have density of distributions available, we could apply the continuous potential flow generator in flow-based models. Actually, our continuous potential flow generator perfectly matches the continuous normalizing flow model proposed by by \cite{chen2018neural}. Two ways are proposed to train the generator in continuous normalizing flow: density matching and maximum likelihood training. While both ways could be applied to train the continuous potential flow generators, here we take the latter one as an example, where we assume the density of $\mu$ and samples from $\nu$ are available, and we train the generator to maximize $\mathbb{E}_{y\sim \nu}[\log p_{G_{\#}\mu}(y)]$, where $p_{G_{\#}\mu}$ is the density of $G_{\#}\mu$. Note that this is equivalent to minimizing  $\text{KL}(\nu||G_{\#}\mu)$. Consequently, the loss for the  continuous potential flow generator would be:
\begin{equation} \label{eqn:flowloss}
\begin{aligned}
   L_{cPFG} = - \mathbb{E}_{y\sim \nu}[\log p_{G_{\#}\mu}(y)] + \lambda \frac{1}{N}\sum_{i=1}^N[\partial_t \tilde{\phi}(t_i,x_i) + \frac{1}{2}|\nabla \tilde{\phi}(t_i, x_i)|^2] ^2,
\end{aligned}
\end{equation}
where as in the GAN model, $\{(t_i, x_i)\}_{i=1}^N$ are the residual points for estimating the residual of PDE (Eqn.~\ref{eqn:potential}), and $\lambda$ is the weight for the PDE penalty.

To estimate $\log p_{G_{\#}\mu}(y)$, we have the ODE that connects the probability density at inputs and outputs of the generator:
\begin{equation} \label{eqn:logden}
\begin{aligned}
   \frac{d}{d t}\log(p(\tilde{f}(t,x))) &= - \nabla \cdot \tilde{v}(t, \tilde{f}(t,x))) = -\Delta \tilde{\phi}(t, \tilde{f}(t,x)),\\
\end{aligned}
\end{equation}
for all $x$ in the support of $\mu$, where the initial probability density $p(\tilde{f}(0,x)) = p_{\mu}(x)$ is the density of $\mu$ at input $x$, while the terminal probability density $p(\tilde{f}(T,x)) = p_{G_\#\mu}(G(x))$ is the density of $G_{\#}\mu$ at output $G(x)$.  The expectation in the loss function is taken with $y\sim \nu$; we set $x = G^{-1}(y)$ and estimate $x$ by solving the ODE
\begin{equation} \label{eqn:inv}
\begin{aligned}
   \frac{dU}{dt} = -\tilde{v}(T-t, U)
\end{aligned}
\end{equation}
with initial condition $U(0)$ as $y = G(x)$ and $U(T)$ as the corresponding $x = G^{-1}(y)$.
Note that with the maximum likelihood training, the density of $\mu$ could be unnormalized, since multiplications with $p_{\mu}$ would merely lead to a constant difference in the loss function.

In practice, we also need to discretize Eqns.~\ref{eqn:logden} and \ref{eqn:inv} properly when calculating $\log p_{G_{\#}\mu}(y)$. For example, we use the first-order Euler scheme with time step $\Delta t = 0.01$ for total time interval $T = 1.0$. Note that the discrete potential flow cannot be trivially applied in flow-based models since we found that the time step size is too large to calculate the density accurately.

\section{Results}\label{sec:results}
In this section we show the numerical results of potential flow generators in different generative models. In specific, in Section \ref{sec:PFGinGAN} we show the results of potential flow generators applied on 2D problems and image translation tasks with GAN models, while in Section \ref{sec:PFGinFlow} we show the results in a flow-based model. The numerical experiments are based on Python package TensorFlow\citep{tensorflow2015}.

\subsection{Potential Flow Generator in GAN models}\label{sec:PFGinGAN}
\subsubsection{2D problems}
In this subsection, we apply the potential flow generator to several two dimensional problems where samples from $\mu$ and $\nu$ are available.

We first study the following two problems where we know analytical solutions for the optimal transport maps.
\begin{enumerate}
    \item In the first problem we assume that both $\mu$ and $\nu$ are Gaussian distributions.
    %
    Suppose $\mu = \mathcal{N}(m_1, \Sigma_1)$, $\nu = \mathcal{N}(m_2, \Sigma_2)$, then \citep{gelbrich1990formula} the minimum transport cost between $\mu$ and $\nu$ will be
\begin{equation} \label{eqn:Gaussian}
\Vert m_1-m_2\Vert^2 + \text{Tr}(\Sigma_1 + \Sigma_2 - 2 (\Sigma_1^{1/2} \Sigma_2 \Sigma_1^{1/2})^{1/2}),
\end{equation}
which is also known as the squared Wasserstein-2 distance between two Gaussian distributions. In particular, we consider the case
\begin{equation} \label{eqn:GaussianDensity}
\begin{aligned}
   \mu = \mathcal{N}(\begin{bmatrix} 0 \\ 0 \end{bmatrix}, \begin{bmatrix} 0.25 & 0 \\ 0 & 1 \end{bmatrix}), \quad \nu &= \mathcal{N}(\begin{bmatrix} 0 \\ 0 \end{bmatrix}, \begin{bmatrix} 1 & 0 \\ 0 & 0.25 \end{bmatrix}).
\end{aligned}
\end{equation}

In this case we can check that $f((x,y)) = (2x,0.5y) $ is the optimal transport map.

\item In the second problem we assume that $\mu$ and $\nu$ are concentrated on concentric rings.
In polar coordinates, suppose that $\mu$ is the distribution with radius $r$ uniformly distributed on $[0.5,1]$, while angular $\theta$ uniformly distributed on $[0,2\pi]$, and suppose $\nu$ is the distribution with radius $r$ uniformly distributed on $[2,2.5]$, while angular $\theta$ uniformly distributed on $[0,2\pi]$.
In this case we can check that $f((r,\theta)) = (r+1.5, \theta)$ in polar coordinates is the optimal transport map.
\end{enumerate}

In both cases, we have 40000 samples from each of $\mu$ and $\nu$ as our training data. Samples from $\mu$ and $\nu$ as well as the optimal transport map in both cases are illustrated in Fig.~\ref{fig:N2Nsamples} and Fig.~\ref{fig:C2Csamples}.

\begin{figure}[ht]
     \centering
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-Problem.png}
         \caption{}
         \label{fig:N2Nsamples}
     \end{subfigure}
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-Vanilla-01.png}
         \caption{}
         \label{fig:N2NV0.1}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-Vanilla-001.png}
         \caption{}
         \label{fig:N2NV0.01}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-Vanilla-0001.png}
         \caption{}
         \label{fig:N2NV0.001}
     \end{subfigure}
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-DiscretePFG.png}
         \caption{}
         \label{fig:N2ND}
     \end{subfigure}
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-ContinuousPFG-10.png}
         \caption{}
         \label{fig:N2NC10}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-ContinuousPFG-1.png}
         \caption{}
         \label{fig:N2NC1}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/N2N-ContinuousPFG-01.png}
         \caption{}
         \label{fig:N2NC0.1}
     \end{subfigure}

    \caption{Comparison of different methods for problem 1. (a) Samples of $\mu$ (purple) and $\nu$ (orange). (b-d) transport map estimated from the vanilla generators. (e) Discrete potential flow generator (PFG). (f-g) Continuous potential flow generator (PFG). In (b-h), the red arrows represent the estimated transport map while the black arrows represent the reference analytical optimal transport map.}
    \label{fig:N2NSWG}
\end{figure}

\begin{figure}[ht]
     \centering
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-Problem.png}
         \caption{}
         \label{fig:C2Csamples}
     \end{subfigure}
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-Vanilla-01.png}
         \caption{}
         \label{fig:C2CV0.1}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-Vanilla-001.png}
         \caption{}
         \label{fig:C2CV0.01}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-Vanilla-0001.png}
         \caption{}
         \label{fig:C2CV0.001}
     \end{subfigure}
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-DiscretePFG.png}
         \caption{}
         \label{fig:C2CD}
     \end{subfigure}
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-ContinuousPFG-10.png}
         \caption{}
         \label{fig:C2CC10}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-ContinuousPFG-1.png}
         \caption{}
         \label{fig:C2CC1}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DPlots/C2C-ContinuousPFG-01.png}
         \caption{}
         \label{fig:C2CC0.1}
     \end{subfigure}

    \caption{Comparison of different methods for problem 2. (a) Samples of $\mu$ (purple) and $\nu$ (orange). (b-d) transport map estimated from the vanilla generators. (e) Discrete potential flow generator. (f-g) Continuous potential flow generator. In (b-h), the red arrows represent the estimated transport map while the black arrows represent the reference analytical optimal transport map.}
    \label{fig:C2CSWG}
\end{figure}

For the above two problems we compare the following generators: (a) vanilla generator, i.e., a neural network with a map from $\mathbb{R}^2$ to $\mathbb{R}^2$ that represents the transport map, with $L_2$ transport penalty added to the original loss function, i.e. loss function in Eqn.~\ref{eqn:Regloss} with GAN loss as $L_{original}$, (b) discrete potential flow generator, and (c) continuous potential flow generator with PDE penalty. For the vanilla generator and the continuous potential flow generator, we test different weights for the penalty in order to compare the influences of penalty weights in both methods. For all the generators the neural networks are designed as a feed forward neural network with 5 hidden layers, each of width 128, with a smooth function $\tanh$ as the activation function since the velocity field has to be continuous. We use the Adam optimizer \citep{kingma2014adam} with learning rate $lr = 1e-5$, $\beta_1 = 0.5$, $\beta_2 = 0.9$, and train the neural networks for $100,000$ steps.

As for the GAN loss for generators we use the sliced Wasserstein distance\footnote{Strictly speaking, there is no ``adversarial'' training when we use sliced Wasserstein loss since the distance is estimated explicitly rather than represented by an other neural network. However, the idea of computing the distance between fake data and real data coincide with other GANs, especially WGANs. Therefore, in this paper we view sliced Wasserstein distance as a special version of GAN loss.}, due to its relatively low computational cost, robustness, and clear mathematical interpretation in low dimensional problems \cite{deshpande2018generative}. In particular, we estimate the sliced Wasserstein distances between samples of $G_{\#}\mu$ and $\nu$ using 1000 random projection directions. The batch size is set as 1000.

For all the cases we run the code three times using different random seed. In Fig.~\ref{fig:N2NSWG} we illustrate the transport maps in one of the three runs for each case. A more systematic and quantitative comparison is provided in Table \ref{tab:N2Ntable} and Table \ref{tab:C2Ctable}, where the best results are marked as bold.

\begin{table}
  \hspace{1em}
  \caption{Problem 1 -- normal to normal distributions.}
  \label{tab:N2Ntable}
  \centering
  \begin{tabular}{llll}
    \toprule
    Generator  & Std in x-axis  & Std in y-axis &  Error of map \\
    \midrule
    Reference &  1.000 & 0.500     \\
    Vanilla ($\alpha = 0.1$) & 0.919$\pm$0.004 & 0.592$\pm$0.003   &  0.108$\pm$0.002\\
    Vanilla ($\alpha = 0.01$)&  0.985$\pm$0.005 & \textbf{0.499$\pm$0.006}   & 0.439$\pm$0.587\\
    Vanilla ($\alpha = 0.001$)&  0.992$\pm$0.009 & 0.493$\pm$0.001   & 0.462$\pm$0.593\\
    Discrete PFG &  \textbf{0.993$\pm$0.001}  & 0.498$\pm$0.002 & \textbf{0.018$\pm$0.006} \\
    Continuous PFG ($\lambda = 10.0$)& 0.991$\pm$0.001 & 0.502$\pm$0.001 & \textbf{0.018$\pm$0.006}  \\
    Continuous PFG ($\lambda = 1.0$)& 0.992$\pm$0.001 & \textbf{0.499$\pm$0.002} & 0.019$\pm$0.007  \\
    Continuous PFG ($\lambda = 0.1$)& 0.990$\pm$0.002 & 0.503$\pm$0.003 & 0.025$\pm$0.008 \\
    \bottomrule
  \end{tabular}
\end{table}

\begin{table}
  \hspace{1em}
  \caption{Problem 2 -- ring to ring distributions.}
  \label{tab:C2Ctable}
  \centering
  \begin{tabular}{lll}
    \toprule
    Generator  & Mean of norm &  Error of map \\
    \midrule
    Reference &  2.250     \\
    Vanilla ($\alpha = 0.1$) & 2.107$\pm$0.002  & 0.146$\pm$0.003    \\
    Vanilla ($\alpha = 0.01$)& 2.227$\pm$0.004 & 0.973$\pm$1.319     \\
    Vanilla ($\alpha = 0.001$)& 2.243$\pm$0.002 & 1.000$\pm$1.311 \\
    Continuous PFG ($\lambda = 10.0$)& 2.243$\pm$0.001 & \textbf{0.024$\pm$0.004} \\
    Continuous PFG ($\lambda = 1.0$)& \textbf{2.245$\pm$0.000} & 0.029$\pm$0.002  \\
    Continuous PFG ($\lambda = 0.1$)& \textbf{2.245$\pm$0.001} & 0.031$\pm$0.004 \\
    \bottomrule
  \end{tabular}
\end{table}

As we already mentioned, the $L_2$ transport penalty would make $G_{\#}\mu$ biased towards $\mu$ to reduce the transport cost from $\mu$ to $G_{\#}\mu$. This is clearly shown in both problems where the penalty weight is $\alpha = 0.1$. Actually, we observed more significant biases with larger penalty weights. For the cases with smaller penalty weights $\alpha = 0.01, 0.001$, in some of the runs, while $G_{\#}\mu$ are close to $\nu$, the estimated transport maps are far from the optimal ones, which shows that the $L_2$ transport penalty cannot provide sufficient regularity if the penalty weight is too small. These numerical results are consistent with our earlier discussion about the intrinsic limitation of the $L_2$ transport penalty.

On the other hand, the potential flow generators give better matching between $G_{\#} \mu$ and $\nu$, as well as smaller errors between the estimated transport maps and the analytical optimal transport maps. Notably, in both problems the continuous potential flow generators give good results with a wide range of PDE penalty weights ranging from $0.1$ to $10$, which shows the superiority of PDE penalty in the continuous potential flow generators compared with the transport penalty in vanilla generators. We also report that while in the first problem the discrete potential flow generator achieves a comparable result with the continuous potential flow generators, in the second problem we encountered ``NAN" problems during training the discrete potential flow generator in some of the runs. This indicates that the discrete potential flow generator is not as robust as the continuous one, which could be attributed to the high order differentiations in the discrete potential flow generators.

Apart from the previous two problems, we also applied the continuous potential flow generators to another three pairs of $(\mu, \nu)$ distributions, which are illustrated in Fig.~\ref{fig:2DOther}. Here we use WGAN-GP instead of SWG since we found that it provides better GAN loss for complicated distributions. The PDE penalty weight are set as $1.0$.

From Fig.~\ref{fig:2DOther} we can see the match between $G_{\#}\mu$ and $\nu$ in each of the problems, which shows the effectiveness of the potential flow generator. We could also see that samples of $\mu$ tend to be mapped to nearby positions, which demonstrates the characteristics of ``proximity'' in the potential flow generator maps due to the $L_2$ optimal transport regularity.

\begin{figure}[H]
     \centering
    \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/128-mu.png}

         \label{fig:128-mu}
     \end{subfigure}
        \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/128-nu.png}

         \label{fig:128-nu}
     \end{subfigure}
        \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/128-map.png}

         \label{fig:128-map}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/128-GP.png}

         \label{fig:128-GP}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/N2M-mu.png}

         \label{fig:N2M-mu}
     \end{subfigure}
        \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/N2M-nu.png}

         \label{fig:N2M-nu}
     \end{subfigure}
        \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/N2M-map.png}

         \label{fig:N2M-map}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/N2M-GP.png}

         \label{fig:N2M-GP}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/S2L-mu.png}

         \label{fig:S2L-mu}
     \end{subfigure}
        \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/S2L-nu.png}

         \label{fig:S2L-nu}
     \end{subfigure}
        \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/S2L-map.png}

         \label{fig:S2L-map}
     \end{subfigure}
         \begin{subfigure}[b]{0.24\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./2DOtherPlots/S2L-GP.png}

         \label{fig:S2L-GP}
     \end{subfigure}
    \caption{Continuous potential flow generator in WGAN-GP for three different problems. Each row shows the setup and results of each problem. From left to right: samples of $\mu$, samples of $\nu$, transport map estimated by potential flow generator $G$, samples of $G_{\#}\mu$.}
    \label{fig:2DOther}
\end{figure}

\subsubsection{Image Translations: the MNIST and CelebA dataset}

In this section, we aim to show the capability of potential flow generator in dealing with high dimensional problems, and also to show the potential of optimal transport map in tasks of image translations using unpaired training data. In particular, we apply the continuous potential flow generator, due to its robustness compared with the discrete potential flow generator, on the following two tasks:
\begin{enumerate}
    \item Translation between the MNIST images \citep{mnistdataset}. We divide the MNIST training dataset into two clusters: (a) images of digits 0 to 4, and (b) images of digits 5 to 9. We view the two clusters of images as samples of $\mu$ and $\nu$, respectively, i.e., we want to find the optimal transport map from images of digits 0 to 4 to images of digits 5 to 9.
    \item Translation between the CelebA images \citep{celebAdataset}. We randomly pick 60000 images from the CelebA training dataset and divide them into two clusters: (a) no-smiling face images, i.e., images with attribute ``smiling'' labeled as false, and (b) smiling face images, i.e., images with attribute ``smiling'' labeled as true. We crop the images so that only faces remain on the images, and view the two clusters as samples of $\mu$ and $\nu$, respectively, i.e., we want to find to the optimal transport map from no-smiling face images to smiling face images.
\end{enumerate}
Note that in both tasks there are no paired images in training data, and in the first task we do not distinguish digits among $\mu$ samples and $\nu$ samples.

Before feeding into the generators, we need to embed the images into a Euclidean space, where the $L_2$ distances between embedding vectors should quantify the similarities between images. While there could be other ways for the embedding, like auto-encoders or graph-embedding, in this paper we apply the principal component analysis (PCA)\citep{jolliffe2011principal}, a simple but highly interpretable approach to conduct the image embedding. In both problems, we use WGAN-GP to provide the GAN loss functions. While keeping the time span $T=1.0$, here we set the time step $n=10$ instead of $n = 100$ to reduce the computational cost. The PDE penalty weight $\lambda$is set as 1.0. Both $\tilde{\phi}$ and the discriminator are designed as feed forward neural networks with 5 hidden layers, each of width 256. We emphasize that we did not use any convolutional neural networks here. We use the Adam optimizer with learning rate $lr = 0.0001$, $\beta_1 = 0.5$, $\beta_2 = 0.9$, and train the neural networks for $100,000$ steps.

For the first problem on the MNIST dataset, we embed the images into 100-dimensional Euclidean space, i.e. the total components in PCA is 100. We randomly pick images of digits from 0 to 4 from the test set and show the corresponding inputs and outputs in Fig.~\ref{fig:MNIST}. Although the digits are mixed in the training dataset, we can see that after training, the potential flow generator tends to translate images of digit 0 to digit 6, digit 1 to digit 7, digit 3 to digit 5 or 8, and digit 4 to digit 9. This is consistent with our previous discussion about the characteristics of ``proximity'' in that the input digits and output digits ``look similar'', and the corresponding embedding vectors should be close in the $L_2$ distance.

\begin{figure}[ht]
     \centering
    \begin{subfigure}[b]{1.0\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./MNISTPlots/0-20.png}

         \label{fig:MNIST0}
     \end{subfigure}
        \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.2in}
         \includegraphics[width=\textwidth]{./MNISTPlots/1-20.png}

         \label{fig:MNIST1}
     \end{subfigure}
         \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.2in}
         \includegraphics[width=\textwidth]{./MNISTPlots/2-20.png}

         \label{fig:MNIST2}
     \end{subfigure}
         \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.2in}
         \includegraphics[width=\textwidth]{./MNISTPlots/3-20.png}

         \label{fig:MNIST3}
     \end{subfigure}
         \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.2in}
         \includegraphics[width=\textwidth]{./MNISTPlots/4-20.png}

         \label{fig:MNIST4}
     \end{subfigure}

    \caption{Potential flow generator on the MNIST dataset. In each row, the top images are reconstructed from the input vectors, while the bottom images are reconstructed from the corresponding output vectors.}
    \label{fig:MNIST}
\end{figure}

\begin{figure}[H]
     \centering
    \begin{subfigure}[b]{1.0\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./CelebAPlots/Train1.png}

         \label{fig:CelebA1}
     \end{subfigure}
     \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.25in}
         \includegraphics[width=\textwidth]{./CelebAPlots/Train2.png}

         \label{fig:CelebA2}
     \end{subfigure}
    \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.15in}
         \includegraphics[width=\textwidth]{./CelebAPlots/Test1.png}

         \label{fig:CelebA3}
     \end{subfigure}
    \begin{subfigure}[b]{1.0\textwidth}
         \centering
          \vspace{-0.25in}
         \includegraphics[width=\textwidth]{./CelebAPlots/Test2.png}

         \label{fig:CelebA4}
     \end{subfigure}
    \caption{Potential flow generator on the CelebA dataset. In each row, the top images are reconstructed from the input vectors, while the bottom images are reconstructed from the corresponding output vectors. The top two rows are from the training dataset, while the bottom two rows are from the testing dataset. }
    \label{fig:CelebA}
\end{figure}

For the second problem on the CelebA dataset, we embed the images into a 700-dimensional Euclidean space, i.e. the total components in PCA is 700. We randomly pick no-smiling images from the training and testing datasets, and show the corresponding inputs and outputs in Fig.~\ref{fig:CelebA}. We can see that for most of the images, the potential flow generator could translate the no-smiling faces to smiling faces while keeping the other attributes. We can also see the failure for other images, especially for side faces, which could be partially attributed to the fact that these images are outliers in PCA. The reconstructed output images are kind of blurred, since it is difficult to learn the high order modes of PCA.

\subsection{Potential Flow Generator in flow-based models}\label{sec:PFGinFlow}
In this section we apply the continuous potential flow generator in continuous normalizing flows with three pairs of $(\mu, \nu)$ distributions. The distributions of $\mu$ and $\nu$ as well as the results are illustrated in Fig.~\ref{fig:Flows}. We use a feed forward neural network with 5 hidden layers, each of width 128, to represent $\tilde{\phi}$. We use the Adam optimizer with learning rate $lr = 0.0001$, $\beta_1 = 0.9$, $\beta_2 = 0.999$, and train the neural networks for $10,000$ steps. The PDE penalty weights are set as $1.0$. From Fig.~\ref{fig:Flows} we can see the match between $G_{\#}\mu$ and $\nu$ in each of the problems, as well as that that the samples of $\mu$ tend to be mapped to nearby positions, which shows the effectiveness of the continuous potential flow generator in the flow-based models.

\begin{figure}[H]
     \centering
    \begin{subfigure}[b]{0.264 \textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2N-mu.png}

         \label{fig:Flow-N2N-mu}
     \end{subfigure}
        \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2N-nu.png}

         \label{fig:Flow-N2N-nu}
     \end{subfigure}
        \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2N-map.png}

         \label{fig:Flow-N2N-map}
     \end{subfigure}
         \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2N-GP.png}

         \label{fig:Flow-N2N-GP}
     \end{subfigure}
         \begin{subfigure}[b]{0.264 \textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/128-mu.png}

         \label{fig:Flow-128-mu}
     \end{subfigure}
        \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/128-nu.png}

         \label{fig:Flow-128-nu}
     \end{subfigure}
        \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/128-map.png}

         \label{fig:Flow-128-map}
     \end{subfigure}
         \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/128-GP.png}

         \label{fig:Flow-128-GP}
     \end{subfigure}
         \begin{subfigure}[b]{0.264 \textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2M-mu.png}

         \label{fig:Flow-N2M-mu}
     \end{subfigure}
        \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2M-nu.png}

         \label{fig:Flow-N2M-nu}
     \end{subfigure}
        \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2M-map.png}

         \label{fig:Flow-N2M-map}
     \end{subfigure}
         \begin{subfigure}[b]{0.22\textwidth}
         \centering
         \includegraphics[width=\textwidth]{./FlowBackPlots/N2M-GP.png}

         \label{fig:Flow-N2M-GP}
     \end{subfigure}
    \caption{Potential flow generator in continuous normalizing flow for three different problems. Each row shows the setup and results of one problem. From left to right: unnormalized density of $\mu$, samples of $\nu$, transport map estimated by potential flow generator $G$, and samples of $G_{\#}\mu$.}
    \label{fig:Flows}
\end{figure}

\section{Conclusions}\label{sec:conclu}

In this paper we propose potential flow generators with $L_2$ optimal transport regularity. In particular, we propose two versions: the discrete one and the continuous one. Both potential flow generators could be integrated in GAN models with various generator loss functions, while the latter one could also be integrated into flow-based models. For the discrete potential flow generator, the $L_2$ optimal transport is directly encoded in, while for the continuous potential flow generator we only need a slight augmentation to the original generator loss functions to impose the $L_2$ optimal transport regularity.

We first show the correctness of potential flow generators in estimating $L_2$ optimal transport map by comparing with analytical reference solutions. We report that the continuous potential flow generator outperforms the discrete one in robustness. We also illustrated the characteristic of ``proximity'' for potential flow generator due to $L_2$ optimal transport regularity, and consequently the effectiveness of the potential flow generator in image translation tasks using unpaired training data from the MNIST dataset and the CelebA dataset.

Apart from image-to-image translations, it is also possible to apply the potential flow generator to other translation tasks, text-to-text translations for example, if the translation objects could be properly embedded into Euclidean space. It is also interesting to study the application of potential flow generator in other generative models apart from the ones in this paper. Moreover, while in this paper we use PCA for image embedding, a possible improvement is to integrate potential flow generator with other embedding techniques like autoencoders and graph embedding methods. We leave these possible improvements to future work.

\section{Acknowledgement}
This work is supported by the ARO MURI project (W911NF-15-1-0562), the DOE PhILMs project (DE-SC0019453), and the DARPA AIRA project (HR00111990025).

redpajama_set_name: RedPajamaArXiv


Voluntary Simplicity, Well-being and Meaning in Life. A Multilingual Empirical Study of 500+ People who Consciously Choose for Simple and Slow Living.
Zegers, H. (2017). Voluntary Simplicity, Well-being and Meaning in Life. A Multilingual Empirical Study of 500+ People who Consciously Choose for Simple and Slow Living. Podium Presentation at the 5th World Congress on Positive Psychology, Montréal, July 13-16, 2017.
Previous PostPrevious NRC: Minder Spullen, Meer Geluk.


text:
Ku-ring-gai Electorate Events and Infrastructure; Tribute to Dr Nuli Lemoh
Mr ALISTER HENSKENS (Ku-ring-gai—Minister for Families, Communities and Disability Services) (21:59): The electorate of Ku-ring-gai is rich in bushland. Recently we saw back-burning operations in full swing when many members of my local community were actively involved in bushfire mitigation. On 11 and 12 September the Rural Fire Service, including the Ku-ring-gai and Hornsby fire brigades, hosted Get Ready Weekend online, providing residents with the opportunity to engage with their local brigade and plan for the bushfire season. The Ku-ring-gai brigade also joined the council to host workshops for residents, using a live 3D simulation to show how a bushfire could spread in our local community. The workshops included possible bushfire scenarios and guidance to prepare emergency plans. Many residents in my local community attended the workshops, which are particularly important as we have previously experienced destructive bushfires in our area. I commend the Ku-ring-gai and Hornsby fire brigades, as well as the local community for its participation.
I regretfully note the recent and sad passing of an outstanding person, Dr Nuli Lemoh, a member of Turramurra Rotary in my electorate of Ku-ring-gai. Nuli was born in Sierra Leone but came to Australia to study medicine at Sydney University. After his graduation he returned to Sierra Leone to give back to his community. Nuli eventually returned to Australia and started his career as a paediatrician. In the 1990s he joined Turramurra Rotary and in 2018 he was made an honorary member. Nuli's passion in life was to save the lives of children and babies in Sierra Leone, so he decided to build a children's hospital in his home town. Turramurra Rotary helped to raise the initial funds for the hospital, known as Bo Children's Hospital. The hospital has been operating since 2012 and has treated more than 21,000 patients. I offer my condolences to Nuli's family and all those at Turramurra Rotary who knew him. Vale Dr Lemoh.
Residents in my electorate of Ku-ring-gai will benefit from major upgrades to the Pacific Highway, particularly between Turramurra and Wahroonga, which are happening as part of the New South Wales Government's Pinch Point Program. Pleasingly, this program is delivering results in Ku-ring-gai along the Pacific Highway. It will alleviate the bottleneck of 60,000 motorists each day in this busy corridor. The widened highway will provide three continuous northbound lanes and improve the turning movements in and out of cross streets. Earlier this year work was completed at the intersection of Finlay Road. Construction is also underway at the intersections with Fox Valley Road and Redleaf Ave in Wahroonga. Driving up the Pacific Highway through Turramurra and Wahroonga, it is easy to see the substantial progress being made relocating utilities, installing traffic signals, improving road pavement, building retaining walls and landscaping. Construction of footpaths will also commence soon. The upgrade is expected to be completed next year and the community is looking forward to the improved safety, traffic flow and efficiency along the highway.
I believe that our community deserves modern, safe and accessible infrastructure. I am therefore pleased that planning approval has been granted for the Killara Station upgrade in my electorate of Ku-ring-gai as part of the New South Wales Government's Transport Access Program. From 30 June to 27 July the community was consulted over the design. Key feedback included improving accessibility, retaining trees around the station and ensuring that the design is sympathetic to the heritage character of the station. As a result, this upgrade will provide a better experience for transport customers and will importantly upgrade the station to be more accessible to people with disability, limited mobility, parents and carers with prams, and customers with luggage. Construction will commence on 1 November and continue until February 2023. I have long supported this upgrade and recently participated in discussions with Transport for NSW regarding the project. I thank our local community for its feedback and the New South Wales Government for its responsiveness to the community and financial support for the project.
I am happy to update the House that the Wahroonga station Transport Access Program [TAP] upgrade construction is nearing completion, with the expectation that commuters will be enjoying the new facilities early in the new year. The upgrade will enhance accessibility with a lift, an accessible ramp to the local village, accessible and ambulant toilets, and accessible parking as part of the New South Wales Government TAP program. I am pleased that construction is now underway at Normanhurst, Thornleigh and Pymble stations, and Waitara and Killara stations are in the design and planning phase.

redpajama_set_name: RedPajamaCommonCrawl


Quentin Décaillet is a photographer, retoucher and educator based in Switzerland. With a background in IT and a family that has always pushed him to create things, Quentin has had the chance to develop both logical and artistic skills over the years. Photography appeared as something obvious to him in 2012. In 2013, he decided to turn his love for photography and retouching into his full-time job and did not look back since. Along with his photography and retouching jobs, Quentin is also a staff writer for FStoppers.com and teaches his passions in both English and French.
When I started my photography business, I used to work with Lightroom and Photoshop. But then after a year or so, I had the opportunity to work in a studio and thus started looking for a way to shoot tethered to my computer. That's when I found out about Capture One. It took me about ten days to get convinced I had to switch all of my editing workflows to Capture One as my primary raw processing and asset management software. You probably wonder why, as Lightroom is still the most used editing tool for wedding photographers. Well, Capture One simply made my work better and my workflow more efficient. That meant more polished images for my clients and more time for myself as well. Let's take a look at the five areas Capture One improved the most in my work for wedding photography.
If you don't already have Capture One Pro, you can download a 30-day trial to follow along here.
The White Balance tool is one that is found in virtually every single photo editing software. However, not all of them have equivalent features. I particularly love the one in Capture One because I can choose between four different methods of picking my White Balance. The first and most common method is through the Mode dropdown list letting me select between the various options my camera has to offer – cloudy, daylight, flash, tungsten, etc. The second one is through the Kelvin and Tint sliders for a more personalized or refined adjustment. Thirdly is the White Balance Picker which will set the White Balance automatically according to the point you dim to be unsaturated – it's good practice to select a white point, but gray or black work just as well. This picker works well for weddings as you are most likely to have white or black in nearly all of your shots. However, be careful as most current wedding dresses and suits aren't purely white or black. Using the picker on those may result in a slightly off-color balance. Be sure to adjust manually if needed.
Finally, the fourth method is the Skin Tone White Balance – which is one of the most reliable ways of color correcting the majority of your images quite easily. Another color picker is available here and lets you choose the skin tone of someone to set the White Balance. What I tend to do is create one preset for my bride and another for my groom. Then once that's done, I'll go over one image of each moment of the day to apply that White Balance preset on the picture, and then sync the rest of the pictures from each moment with the one adjusted. It may seem like a painful and long process said this way, but it's quite simple. For more details on this technique be sure to read my article over on FStoppers.com here.
The Color Balance tool was introduced with Capture One 8.2 and has since become one of the staples of my workflow. Not only does it make color correction easier, but color toning as well. When shooting weddings, often you have those weird color casts on your images because of the poor lighting the DJ, organizer, or couple set up. The White Balance tool can help with this issue, but I found myself more than once not being able to go far enough with it to counterbalance the strong color cast. The Color Balance tool can help you with this issue by letting you change the color for either the whole image, or the mid-tones, highlights, and shadows independently.
In the shots above, you can see the images with a strong magenta cast due to the lighting of the room. However, because the lighting was changing from shot to shot, I couldn't set the white balance manually on my camera for each image. I shot everything daylight balanced and then I relied on the automatic white balance feature of Capture One before using the Color Balance tool to correct any color that I couldn't get right with the White Balance tool. In this example, I added Green/Yellow in the master, and then corrected the Highlights, Shadows, and Midtones individually to get the most out of my raw file. Something I couldn't do before in Aperture or Lightroom. The Color Balance tool can be used for color toning purposes as well. In the example above it's actually not just a correction, but a bit of toning as well. Because I wanted to keep that purple and blue look the light had, I added some blue/purple in the shadows. Just so that the skin tones look great, but the overall mood isn't too neutral.
Speaking of skin tones, Capture One has a fantastic tool called the Color Editor with a Skin Tone tab. The latter is specifically tailored for those photographing people and that need to make the skin tone a bit more uniform. I'm not talking about smoothing the skin texture at all here, but simply giving our bride and groom a little makeup touchup. It's not uncommon that after a few hours have passed, the couple will show some redness in some areas of their faces – kisses, wine, heat – the causes are numerous. The Skin Tone tab will help us make the skin look more uniform, and if combined with the Skin Tone White Balance tip, you may be able to keep a consistent color throughout the whole day.
Depending on your screen, the difference may not be quite noticeable, but once the images are printed in my albums, the result take my pictures to another level. The tiny difference it makes is what can separate you from the competition. It is also a time saver feature because I don't have to go through Photoshop to achieve a gorgeous healthy-looking skin. Most of the time, the color change is enough that I don't have to go into Photoshop and use more advanced techniques to make the skin look perfect.
In the past few years that I've been shooting weddings, I've had multiple clients asking me what I did with the light to get the images that I have. The truth is it's not the light but the post-production part that gave the effect they couldn't describe. I tend to dodge and burn areas of my images to give them more drama or facilitate their reading for the viewers. In Lightroom, it was a pain to work with local adjustments because of the way they are displayed. Working with Photoshop was too much of a hassle, and neither of them could let me do that in the convenient way Capture One does. In Capture One, my workflow is pretty straightforward. I set my white balance for each shot, then work on the exposure before applying a Style – I really love the ones Phase One recently released, especially the Cinematic and Spectrum Packs. Finally, I work with local adjustments where it's needed. All of my adjustments, even the white balance and exposure edits, are done with Viewer Mode set to 'Multi View' with multiple images selected, and then I can switch to the next images with a simple keyboard shortcut.
Why work in Multi View, you may wonder. Well, first, I can compare a set of images to make sure the exposure, color, and contrast are matching so that once in the album they work together and not against each other. Then, in Capture One I can also edit the images in this mode the very same way I would if there was only a single image selected and shown in full screen. When editing weddings, I don't need the level of precision I would require for beauty or commercial work, thus having smaller thumbnails is more than enough. It's even better for global dodging and burning as when working in full screen, we tend to go too far. For my workflow, I've set custom shortcuts to create new layers, cycle through them, and add the most common edit I would do – contrast, saturation, and exposure. This way, I don't have to go to the menus to add a new layer, make an adjustment and then brush. I start by brushing which creates a new layer, then adjust the exposure, contrast, or saturation, and once I'm done, I move to the next picture. Being able to work with the thumbnails and customize shortcuts was an absolute game changer for me! For those two reasons alone, I'm surprised most outsourcing companies still work with Lightroom.
The last point I want to touch on is the speed at which Capture One renders files. When I teach workshops, people who are not used to Phase One's tools and equipment ask me if it can manage big files like those created by a D810 or 5Ds. If Capture One can handle the raw files from a 101-megapixel sensor without a hiccup, there is no doubt that if your computer is powerful enough, Capture One won't have an issue! Since the releases of Capture One 9 and 10, the zooming and panning feature has also been vastly improved and the speed at which you can zoom in a 101-megapixel file is absolutely incredible. While this may seem secondary, when you have to go through hundreds if not thousands of images, it's not. There is nothing I hate more than having to wait on my photo editing software to unfreeze or load an image because it's not able to take advantage of my computer configuration. I want to get my editing done as quickly as possible to spend time with my loved ones and more potential customers! Who doesn't like having more downtime or more business? All in all, Capture One is currently what I found to be the best solution for wedding editing on the market. Not only do I find it to be faster than its competitors for most tasks, but I also believe its color editing features are unmatched. For those of you who don't believe me, try it yourself with the 30-day free trial and don't forget to watch the numerous tutorials and webinars Phase One has available. All the educational content the Danish camera and software company has to offer will give you a head start.
Learn more about Capture One Pro here.
Great review, is it easy to switch between lr to C1?
How can I get your wedding styles for capture one? I would like to get them ASAP.


Staying in Nepal during journey is the serious concern for every traveler. Accommodation is the best shelter for everyone. If you are on Nepal trip, you don't have luxury accommodations, you may feel uncomfortable. We are the best traveling company in Nepal, providing Nepal Tour package designed for luxury accommodations. Our main aim is to keep the travelers happy and smile on the tour. Our local tour guides have the good knowledge about local areas of the country. Our tour packages will provide you a big discount on staying concerns.


text:
Industrial/Organizational Psychology
Industrial/Organizational
GAIN REAL-WORLD EXPERIENCE THROUGH OUR INTERNSHIP PROGRAM
The Master of Arts (MA) in Industrial/Organizational Psychology at Hofstra University prepares you for career advancement across a number of fields dealing with workplace productivity and behaviors, including human resources, training, management, consulting, coaching, and organization development. Research design, statistics, and psychology provide the foundation for advanced study in selection training, performance appraisal, worker motivation, and organization development. At Hofstra you will also gain valuable hands-on experience through internships at business and public agencies. Full-time students finish in as little as two years. All students are considered for academic merit-based scholarships. Individuals with a relevant master's degree may explore the PhD in Applied Organizational Psychology.
I am interested in learning more about Hofstra's MA in Industrial/Organizational Psychology.
Learn from faculty mentors with research interests in diverse areas, including team dynamics, job stress, conflict at work, decision-making practices, and aging worker issues.
The program is well-designed to serve students and organizations in the Long Island area, endowed with many businesses, industries, public agencies and nonprofit organizations that are undergoing complex change. Take a 30 minute train ride to Manhattan for internships and for events sponsored by the Metropolitan NY Association of Applied Psychology.
Learn About Our Focus
The master's curriculum is strengthened by an internship that starts in your second year. Conduct your internship at your organization or at one of many partner organizations, most providing competitive compensation for interns.
More About Experiential Learning
Significant Outcomes
Our graduates have excellent job placement rates and work in areas such as Organization Effectiveness, Talent Acquisition, Training and Development, Market Research, Consulting, Data Analytics, and more.
Learn About Outcomes
Join the Industrial Organizational Psychology Student Association (IOPSA), which organizes numerous events to provide a balance of professional, academic, and social opportunities for our students.
More about IOPSA
Consideration for the MA in Industrial/Organizational Psychology, requires successful completion of a bachelor's degree in psychology, business, or a related field with a B average or better. Prerequisite courses are also required in introductory psychology and elementary statistics with a B average or better.
GRE Verbal Reasoning, Quantitative Reasoning, and Analytical Writing scores.
Written statement of professional goals.
Personal interview with department member.
Visit the Master of Arts (MA) in Industrial/Organizational Psychology program page to learn more.
Apply to the MA in Industrial/Organizational Psychology program at Hofstra at any time with our rolling admissions policy.
The MA in Industrial/Organizational Psychology is awarded to students who successfully complete 44 credit hours.


but an EVENT to be experienced.
With over 16 years of experience, Andrew Calvert is a rising star in the event industry. Doing business as The Perfect Occasion, he is a professional full service event coordinator, providing all aspects of event planning, from overall design of the event to exquisite custom floral creations, to coordination of professional vendors such as caterers, photographers, and pastry chefs.
He has coordinated a broad spectrum of events, from weddings to anniversary celebrations to birthday galas in settings as diverse as wineries, private estates, and churches. From intimate home gatherings to lavish events with hundreds in attendance, the settings change; the creativity does not. Are you looking for awe inspiring details such as thousands of flowers, hundreds of lanterns, or custom lighting to give you a jaw dropping first impression? Andrew loves to stretch the limits.
Andrew avoids being defined by traditions. Whether you have been imagining the details of your event for years, or have few specific ideas in mind, his specialty is awakening the creative flow in his clients and then bringing those ideas to life in occasions that will linger in memory.
His great passion is to make your event all you have dreamed it could be. Beginning with your first consultation he will help you discover ways to make your event unique to you. No restrictions of budget, size or design should hold you back at this stage. Andrew's wealth of experience means he can often help clients find ways to create a setting that they may have thought impossible on their budget.
The Perfect Occasion can carry as much or as little of the planning process as you desire. From idea consultation to start-to-finish full event coordination, its services can be tailored to your needs. You may choose to use only the consulting services, or Andrew's custom team of seasoned event assistants can join forces to execute your once-in-a-lifetime event down to the last detail.
The Perfect Occasion will help you make your milestone event as memorable as the experiences that have inspired it.
Certified Professional Bridal Consultant through Penn Foster College.
Oregon Bride Magazine's 2008 Valley Pick for best wedding planner.
Oregon Bride Magazine's 2010 Valley Pick for most creative favors.
Published in Grace Ormonde Wedding Style Magazine, Oregon Bride Magazine, Eugene Weddings Magazine.
"For me it began before I can even remember. As a child I was awed by Christmas decorations and festivities. Each Christmas I would decorate a small tree of my own for my bedroom, a tradition that I carry on to this day. Before I had even reached school age, the local Christian school librarian noticed that sparkle in my eye when it came to anything to do with decorations. She invited me to come and decorate her Christmas tree, thus giving me my first job ~ at six years old.
As the years passed I continued to be blessed by others who encouraged me to follow my aspirations. Their support, providing me with opportunities to do simple décor and events for school, gave me the experience I needed to design my first wedding by the time I was 16 years old.
Often I am humbled at the thought that so many people have entrusted me to create memorable experiences for the important occasions in their lives. At times I still feel like that inspired teenager, following his dream with so much still to learn.
Now it has been over 16 years since that first simple wedding, and I have seen and learned so much. I love being able to make what clients have envisioned in their minds come to life before their eyes. Each occasion is unique. Whether it results in thousands of flowers, hundreds of swaying lanterns, or a village of white tents, inspiration is the magic that starts the process and attention to detail is the expert touch that makes it come together flawlessly.


text:
Credit Crunch Reshapes Map of Banking Power
Provide Needed Cash;
UBS Joins a Long List
By Carrick Mollenkamp
For cash-rich investors in Asia and the Middle East, the credit crunch is proving to be a defining moment.
The broad pain caused by U.S. subprime mortgages -- as well as demand for capital for day-to-day operations and acquisitions -- is rapidly reshaping the global banking landscape, and these newfound investors are seizing the day. Western banks have taken in capital investments from these sources to the tune of $46 billion this year, with the potential for trillions of dollars more in coming years.
Monday, Swiss bank UBS AG , reeling from increasing subprime losses it identified in the past week, said it would sell a 10.8% stake to an investment arm of the Singapore government as well as a Middle Eastern investor that UBS didn't name. UBS's pact with the two investors was hashed out over a matter of days, as the bank raced to determine the extent of losses that followed its aggressively ramping up the business of underwriting risky debt pools known as collateralized debt obligations.
The deal is the latest in a spate this year in which state funds or banks in Asia and the Middle East have taken stakes in Western financial firms hobbled by exposure to subprime securities as well as for strategic reasons. UBS joins a growing list of Western banks, including Citigroup Inc., Bear Stearns Cos., Barclays PLC, and HSBC Holdings PLC, that have received capital investments this year.
"It is a further sign of how the balance of the world economy is changing," said Gerard Lyons, chief economist at Standard Chartered PLC in London. "Also it is a reflection of the current fragile state of the financial sector in the West -- not all aspects of it but those parts of it that are hard hit. And the liquidity and the capital are currently widely available in other parts of the world. It's a sign of the structural shift."


text:
Q: Плавная прокрутка к якорю Есть код прокрутки к якорю:
function scroll_page(){

        var target = document.location.hash.replace("#","");
        var selector = 'div[id='+target+']';
        alert(selector);
        $('html,body').animate( {scrollTop: $(selector).offset().top -60}, 2000);
        return false;
    };

И вызывается он:
$(window).on('hashchange', function() {
  scroll_page();
    });

Проблема в том, что при нажатии на ссылку резко прыгает к этому блоку, а потом плавно подъезжает к его верхушке.

redpajama_set_name: RedPajamaStackExchange


Hoodridge Hall features both apartments and townhomes on a quite, tree-lined street in Castle Shannon, PA. These homestlye units feature apartments as well as two-bedroom townhomes. They are only a short stroll to shopping and trolley.
Union Real Estate manages and rents apartments in Pittsburgh and Pittsburgh's suburbs. We have apartments in many popular locations like Squirrel Hills, Oakland, Shadyside, Mt. Lebanon, and more.
I'm interested in Hoodridge Court. Please send me current availability and additional details.